Informa-Db.js
Now with browser support
Concept
The concept is to interact with JSON files based databases by using javascript proxies.
How to install it:
npm i --save informa-db.js
How to use it:
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 });
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
Docs
new Db( path<String>, settings<Object> )
settings.soc<Boolean>
(Or settings.saveOnChange<Boolean>
)
Whether to save once the value changes
Has to be used with enableThis
settings.enableThis<Boolean>
Whether to return the entire class or only the value.
settings.path<String>
Path to file.
Will throw an error if none provided or if type is incorrect
settings.defaultValue<Any>
Default string to write on file if it doesn't exist.
Defaults to {}
settings.saveSpace<Any>
Wether not to indent on file save
Defaults to false
--
The following applies only if settings.enableThis
was set to true
this.update()
Saves this.value
to the file named settings.path
this.value
Content of the batabase
this.readOnlyValue
this.value
without the listeners
DbUtils
DbUtils.setAllTo( DB<Db>, setTo<Object/Array> )
"Resets" or sets the entire DB to a setTo
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!