@keita-sama69/persistent-map

1.0.2 • Public • Published

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

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i @keita-sama69/persistent-map

      Weekly Downloads

      1

      Version

      1.0.2

      License

      ISC

      Unpacked Size

      6.27 kB

      Total Files

      7

      Last publish

      Collaborators

      • keita-sama69