You know when you were a kid and mom told you to clean your room,
when you was busy with something else, your answer would always be the same.
This library is the universal 0 dependencies lazy cache implementation,
leveraging usage of es6 data structures.
yarn add latermom --save
// require library const Cache = require("latermom"); // create cache with factory function (may take any number of parameters) const cache = new Cache(() => Math.random()); // each time you call the cache.get with same parameters // you will get the same once lazy cached answer const a = cache.get(1, 2, 3); const b = cache.get(1, 2, 3); const c = cache.get(1, 2); const d = cache.get(1, 2, 4); expect(a).toEqual(b); // true expect(a).not.toEqual(c); // true expect(a).not.toEqual(d); // true
- constructor(factory: Function) - creates a LaterMom (Lazy Map) instance with factory function for lazy cache
- getKey(...args) - creates string key from args
- has(...args) - check if has entry at key created from args
- get(...args) - get entry at key created from args, lazy instantiated by factory
- del(...args) - deletes entry from data at key created from args
- each(callback: Function) - performs callback on each entry in data
- data: Map
$ jest PASS ./index.test.js ✓ Calls factory once when asked for same key many times (62 ms) ✓ Getter is able to handle multiple arguments ✓ Readme has working code (1 ms) Test Suites: 1 passed, 1 total Tests: 3 passed, 3 total Snapshots: 0 total Time: 0.946 s, estimated 1 s Ran all test suites. Done in 1.44s.
Jacek Pietal @ 2019-2021