Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
informa-db.js
Advanced tools
Now with browser support and with online support
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);
(async () => {
const onlineDb = await (new Db('https://api.jsonbin.io/b/<Insert hex number here>', {
request: {
method: 'PUT',
},
debug: true,
}));
console.log(onlineDb);
onlineDb.working = 'Probably';
})();
All of the following also applies to the browser version
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>
Whether not to indent on file save
Defaults to false
--
The following applies if path
starts with https
settings.request.debug
Whether to output the result of every request Defaults to false
settings.request.method
Method to use when updating the database
Defaults to POST
settings.request.headers
Headers to send when updating/fetching the DB
Defaults to {}
Accept
and Content-Type
headers will always be application/json
--
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( DBValue<Proxy>, setTo<Object/Array> )
"Resets" or sets the entire DB to a setTo
DbUtils.genProxy( JSONToListenTo<Db>, saveOnChange<Boolean>, update<function> )
Utility function used internally to listen for changes in a specific object
Thanks goes to these wonderful people (emoji key):
informathemusic 💻 | Haouari haithem 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!
FAQs
DataBases made easier
The npm package informa-db.js receives a total of 1 weekly downloads. As such, informa-db.js popularity was classified as not popular.
We found that informa-db.js demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.