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

rest-delta-sync

v0.0.14

Published

Utility to synchronise the results of a REST get call with local storage.

Downloads

6

Readme

rest-delta-sync

Build Status Coverage Status

Utility to synchronise the results of a REST get call with local storage. Uses a last modified flag to ensure only changes are synchronised. Uses pagination to keep package sizes down.

Each instance will synchronise one URL with a name-spaced local store

Installation

npm install rest-delta-sync

Usage:

let store = new DeltaSync(url: string, options)

options:

  • storeProvider: must support getItem / setItem / removeItem - if nothing is provided local storgage is used.
  • dbName: unique identifier for the type of data (analagous to a table name in SQL)
  • batch size: how many records to pull down from the server per request
  • frequency: how often should the db be synced with the server (in seconds)

Methods:

  • start: - begins syncing immediately
  • stop: - stops syncing after any current sync operation has completed

Properties:

  • isInitalised: - an initial run of the sync has taken place (i.e. if data is empty it is because the source is empty)
  • isRunning: - an active sync is taking place

Events:

  • dataChangesInserts: - array of ids that have been added since last sync
  • dataChangesUpdates: - array of ids that have been modified since last sync
  • dataChangesDeletion: - arry of ids that have been removed since last sync

Data description:

Every record is expected to have the following server provided attributes

  • id: string - is used to uniquely identify the record in the store.
  • lastModified: string - date-time in ISO format when the record was last updated on the server.
  • isDeleted: boolean - flag - which is the soft deletion flag on the server.

Building