1.0.0 • Published 2 years ago
als-cache-and-history v1.0.0
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-historyUsage
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.error1.0.0
2 years ago