PersistentMap
A extended version of Map
that allows you to keep data persistent with the help of JSON.
const { PersistentMap } = require('@keita-sama69/persistent-map');
/**
* @param {string} name - Name of the JSON file
* @param {boolean} writeOnOperation - Determines whether this will write on every operation
* @param {string} path - Path of the JSON file.
*/
const persistent = new PersistentMap(name, writeOnOperation, path);
To load in data from another JSON, just copy it over into the persistent file.
By default, every operation that alters the map entries entries will immediately write to the JSON file.
If you want to opt-out of this behaviour and manually write to the JSON, instantiate the class with writeOnOperation
set to false.
When setting lots of values, doing:
// writeOnOperation = true
for (let i = 0; i <= 10000; i++) {
persistent.set(somedata);
}
is much slower than doing:
// writeOnOperation = false
for (let i = 0; i <= 10000; i++) {
persistent.set(somedata);
}
persistent.write();
so choose wisely!
Just be aware that when writeOnOperation
is off, you'll have to manage all your data on your own.
If you have writeOnOperation
disabled but still want to enable on of your functions to automatically write on operation, just set force
to true.
A potential way to keep data up-to-date:
// Saves data every minute.
setInterval(() => persistent.write(), 1 * 1000 * 60)
Changelog 1.0.1
- added
writeOnOperation
Changelog 1.0.2
- added
force
option