Now with browser support
Dont forget to read the LICENSE
The concept is to interact with JSON files based databases by using javascript proxies.
npm i --save informa-db.js
Here's a code example on how to use it:
const { Db, DbUtils } = require('informa-db.js');
const players = new Db('players.json');
if (!players[process.env.PLAYER]) players[process.env.PLAYER] = {
inventory: Array(20),
equipment: Array(5),
hp: 20,
xp: 0,
};
const wordDocument = new Db('calculations.json', { saveOnChange: false, exportThis: true });
// Won't work if you destructure
wordDocument.value.aaa = 123456;
wordDocument.value.bbb = wordDocument.value.aaa ** 2;
wordDocument.value.aaa >>= 2;
wordDocument.value.aaa <<= 3;
wordDocument.value.bbb >>= Math.floor(30 * Math.random());
console.log(wordDocument.value);
wordDocument.update();
wordDocument.value.aaa <<= 3;
wordDocument.value.bbb >>= Math.floor(30 * Math.random());
console.log(wordDocument.value);
All of the following also applies to the browser version
Whether to save once the value changes Has to be used with enableThis
Whether to return the entire class or only the value.
Path to file. Will throw an error if none provided or if type is incorrect
Default string to write on file if it doesn't exist.
Defaults to {}
Wether not to indent on file save
Defaults to false
--
The following applies only if settings.enableThis
was set to true
Saves this.value
to the file named settings.path
Content of the batabase
this.value
without the listeners
"Resets" or sets the entire DB to a setTo
Thanks goes to these wonderful people (emoji key):
informathemusic 💻 |
Haouari haithem 💻 |
Daan Breur 📖 |
This project follows the all-contributors specification. Contributions of any kind welcome!