commit 696a7724511992e8f66ea9e27bea106707f56852 Author: Charles Sharma <___@___.___> Date: Sat Jul 16 14:22:26 2022 -0600 First commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba1e2bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +test.json \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..43d4bb2 --- /dev/null +++ b/index.js @@ -0,0 +1,17 @@ +let fs = require("fs"); +function loadDB(databaseFile) { + let _db, db; + if (fs.existsSync(databaseFile)) { + _db = JSON.parse(fs.readFileSync(databaseFile, "utf8")); + } else { + fs.writeFileSync(databaseFile, JSON.stringify({})); + _db = {}; + } + return new Proxy(_db, { + set: function (target, key, value) { + target[key] = value; + fs.writeFileSync(databaseFile, JSON.stringify(target)); + }, + }); +} +exports.loadDB = loadDB; diff --git a/package.json b/package.json new file mode 100644 index 0000000..ed08bb6 --- /dev/null +++ b/package.json @@ -0,0 +1,12 @@ +{ + "name": "jsondb", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/test.js b/test.js new file mode 100644 index 0000000..9e6db17 --- /dev/null +++ b/test.js @@ -0,0 +1,3 @@ +let { loadDB } = require("./index.js"); +let db = loadDB("test.json"); +console.log(db.test);