aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/persist.js18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/persist.js b/lib/persist.js
new file mode 100644
index 00000000..24d00693
--- /dev/null
+++ b/lib/persist.js
@@ -0,0 +1,18 @@
+fs = require("fs");
+
+module.exports = (path, initial = {}) => {
+ try {
+ return require("../" + path);
+ } catch {
+ return new Proxy(initial, {
+ set(obj, prop, value) {
+ fs.writeFileSync(
+ path,
+ JSON.stringify({ ...obj, [prop]: value }, null, 2),
+ "utf-8"
+ );
+ return Reflect.set(...arguments);
+ }
+ });
+ }
+};