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