als-cache-and-history

1.0.0 • Public • Published

Cache and History

Cache and History is a simple Node.js caching module with history. It stores data on the disk and also maintains a list of all previous saved data.

Installation

npm install cache-and-history

Usage

const CacheAndHistory = require('cache-and-history');
let cache = new CacheAndHistory(path, data, logger);

Constructor

  • path (optional): Path where cache files will be stored. Defaults to the current directory.
  • data (optional): Initial data to be cached.
  • logger (optional): Logger to be used. Defaults to console.

Methods

  • error(error, method): Logs an error.
  • getFromFile(data): Gets the latest data from cache.
  • getFile(fileName): Returns the content of a file from cache.
  • save(data): Saves data to cache.
  • getList(): Returns a list of all cached file names.
  • history(from, to): Returns a list of all cached data between two dates or indexes.

Examples

Basic Usage

This example demonstrates creating a cache, saving some data, and retrieving it.

const CacheAndHistory = require('cache-and-history');

// Create a new cache with initial data
let cache = new CacheAndHistory('./cache_folder', { a: 1 });

// The data is immediately available
console.log(cache.cache); // Outputs: { a: 1 }

// Save new data
cache.save({ b: 2 });

// Retrieve the latest data
console.log(cache.cache); // Outputs: { b: 2 }

Using History

The history method retrieves all cached data between two dates or indexes.

const CacheAndHistory = require('cache-and-history');

let cache = new CacheAndHistory('./cache_folder');

// Save some data
cache.save({ a: 1 });
cache.save({ b: 2 });
cache.save({ c: 3 });

// Get all history
let allHistory = cache.history();
console.log(allHistory); // Outputs: [{ a: 1 }, { b: 2 }, { c: 3 }]

// Get history between two indexes
let indexHistory = cache.history(1, 2);
console.log(indexHistory); // Outputs: [{ b: 2 }, { c: 3 }]

// Assume we saved { a: 1 } at time 1000, { b: 2 } at time 2000, and { c: 3 } at time 3000
let dateHistory = cache.history(1500, 2500);
console.log(dateHistory); // Outputs: [{ b: 2 }]

Custom Logger

You can provide a custom logger to the CacheAndHistory constructor. The logger should have an error method which will be used to log any errors.

const CacheAndHistory = require('cache-and-history');

const customLogger = {
  error: (err, method) => {
    console.error(`An error occurred in ${method}: ${err}`);
  },
};

let cache = new CacheAndHistory('./cache_folder', null, customLogger);

// Now, if an error occurs, it will be logged with customLogger.error

Readme

Keywords

Package Sidebar

Install

npm i als-cache-and-history

Weekly Downloads

2

Version

1.0.0

License

MIT

Unpacked Size

12.9 kB

Total Files

4

Last publish

Collaborators

  • alexsorkin