npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

diffhook

v0.1.2

Published

Asynchronous webhooks for monitoring changes in external webpages.

Downloads

21

Readme

diffhook license npm version Build Status PRs Welcome

Asynchronous webhooks for monitoring changes in external webpages.

Getting Started

Using diffhook is as simple as the following (using ES6 syntax):

npm i diffhook or yarn add diffhook

import diffhook from 'diffhook';

var hook = null;

function testFunc(oldResponse, newResponse) {
	console.log("Old Response:");
	console.log(oldResponse);
	console.log("New Response:");
	console.log(newResponse);
	clearInterval(hook);
}

var hook = diffhook("https://brandonrninefive.github.io", 10000, testFunc, "Tick");

The above setup will make an AJAX call to https://brandonrninefive.github.io and log the string "Tick" every 10 seconds. However, if a response has not been fully returned from the last AJAX call, or a connection error occurs, the next "Tick" will be logged, but a new AJAX call will not be sent out. Any connection errors will also be logged. testFunc will only be called if the AJAX request is successful, and the contents of the response differs between calls.

diffhook returns a call to setInterval(), meaning the hook can be stopped with clearInterval(), such as in the example above.

Parameters

url - (String) The URL of the webpage to monitor.

interval - (Number) The interval between AJAX calls (in milliseconds).

callback - (Function) The function to execute when a diff occurs between AJAX calls. This function is passed two parameters, oldResponse, and newResponse, representing the last and current contents of the AJAX response, respectfully.

pollingStr - (String) A string to log to the console each time an AJAX call is made. Passing null will prevent any logging.

Interval Courtesy

Since making frequent requests to URLs can throttle the response times of servers, setting interval to be too low could be perceived as a network attack. For this reason, it is highly recommended that you set interval to be a minimum of multiple seconds, or even minutes, in length. If you want to use a smaller interval value, do so at your own risk.