🔨 LokiJS Promise
The native LokiJs does not allow synchronous loading of the persistent json/db store before running commands.
Using Promises, this library overcomes this and now allows you to load the persistent json/db store first before running any other command.
Installation
npm install lokijs-promise
Usage
Full Example:
const getCollection initDB getDB = // Always run this at the start/top of your app to instantiate the DB // A file called v1.json will be created in your project repo and will be used as the DB, and it will have an autosave interval of 1000ms (1 second, essentially) { // Get Insect Collections if exists, if not, it will create one in the DB let insects = await // Query for results console; let results_1 = insects console // Insert in a new record insects // Query for results console; let results_2 = insects console // Do whatever LokiJS stuff etc let db = await //.... //.... // Examples on how to use `db` found here in the LokiJs documentation: https://rawgit.com/techfort/LokiJS/master/jsdoc/index.html}
Using Your Own Promise Library
The default Promise library used here would be Bluebird, as it faster for older versions of Node.
Note that in later versions of Node, native Promises are the fastest. Another extremely performant Promise library you could try is Aigle ( https://github.com/suguru03/aigle ), which is faster than Bluebird in this benchmark: https://github.com/suguru03/aigle/tree/master/benchmark
Either way, you can override the Bluebird promise library this way, anywhere in your code:
const setPromiseLibrary = // This sets the Promise library used in lokijs-promise to the native NodeJs Promise library
Contributing
In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.