summaryrefslogtreecommitdiff
path: root/node_modules/lowdb/lib
diff options
context:
space:
mode:
author8cy <[email protected]>2020-04-03 02:37:42 -0700
committer8cy <[email protected]>2020-04-03 02:37:42 -0700
commit60867fb030bae582082340ead7dbc7efdc2f5398 (patch)
tree4c6a7356351be2e4914e15c4703172597c45656e /node_modules/lowdb/lib
parentcommenting (diff)
downloads5nical-60867fb030bae582082340ead7dbc7efdc2f5398.tar.xz
s5nical-60867fb030bae582082340ead7dbc7efdc2f5398.zip
2020/04/03, 02:34, v1.2.0
Diffstat (limited to 'node_modules/lowdb/lib')
-rw-r--r--node_modules/lowdb/lib/_index.js100
-rw-r--r--node_modules/lowdb/lib/browser.js21
-rw-r--r--node_modules/lowdb/lib/file-async.js22
-rw-r--r--node_modules/lowdb/lib/file-sync.js37
-rw-r--r--node_modules/lowdb/lib/index.browser.js10
-rw-r--r--node_modules/lowdb/lib/index.node.js13
-rw-r--r--node_modules/lowdb/lib/json.js10
7 files changed, 213 insertions, 0 deletions
diff --git a/node_modules/lowdb/lib/_index.js b/node_modules/lowdb/lib/_index.js
new file mode 100644
index 0000000..c4c475b
--- /dev/null
+++ b/node_modules/lowdb/lib/_index.js
@@ -0,0 +1,100 @@
+'use strict';
+
+var isPromise = require('is-promise');
+
+module.exports = function (source) {
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
+ _ref$format = _ref.format,
+ format = _ref$format === undefined ? null : _ref$format,
+ _ref$storage = _ref.storage,
+ storage = _ref$storage === undefined ? null : _ref$storage,
+ _ref$writeOnChange = _ref.writeOnChange,
+ writeOnChange = _ref$writeOnChange === undefined ? true : _ref$writeOnChange;
+
+ var lodash = arguments[2];
+
+ // Create a fresh copy of lodash
+ var _ = lodash.runInContext();
+
+ var db = _.chain({});
+
+ if (source) {
+ if (format) {
+ if (format.serialize) {
+ db.serialize = format.serialize;
+ }
+ if (format.deserialize) {
+ db.deserialize = format.deserialize;
+ }
+ }
+
+ if (storage) {
+ if (storage.read) {
+ db.read = function () {
+ var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : source;
+
+ var res = storage.read(s, db.deserialize);
+ var init = function init(obj) {
+ db.__wrapped__ = obj;
+ db._checksum = JSON.stringify(db.__wrapped__);
+ };
+
+ if (isPromise(res)) {
+ return res.then(function (obj) {
+ init(obj);
+ return db;
+ });
+ }
+
+ init(res);
+ return db;
+ };
+ }
+
+ if (storage.write) {
+ db.write = function () {
+ var dest = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : source;
+ return storage.write(dest, db.__wrapped__, db.serialize);
+ };
+ }
+ }
+ }
+
+ // Persist database state
+ function persist() {
+ if (db.source && db.write && writeOnChange) {
+ var str = JSON.stringify(db.__wrapped__);
+
+ if (str !== db._checksum) {
+ db._checksum = str;
+ db.write(db.source);
+ }
+ }
+ }
+
+ // Modify value function to call save before returning result
+ _.prototype.value = _.wrap(_.prototype.value, function (value) {
+ var v = value.apply(this);
+ persist();
+ return v;
+ });
+
+ // Get or set database state
+ db.getState = function () {
+ return db.__wrapped__;
+ };
+ db.setState = function (state) {
+ db.__wrapped__ = state;
+ persist();
+ };
+
+ db._ = _;
+ db.source = source;
+
+ // Read
+ if (db.read) {
+ return db.read();
+ } else {
+ return db;
+ }
+}; \ No newline at end of file
diff --git a/node_modules/lowdb/lib/browser.js b/node_modules/lowdb/lib/browser.js
new file mode 100644
index 0000000..e0bd3fb
--- /dev/null
+++ b/node_modules/lowdb/lib/browser.js
@@ -0,0 +1,21 @@
+'use strict';
+
+/* global localStorage */
+
+module.exports = {
+ read: function read(source) {
+ var deserialize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : JSON.parse;
+
+ var data = localStorage.getItem(source);
+ if (data) {
+ return deserialize(data);
+ } else {
+ localStorage.setItem(source, '{}');
+ return {};
+ }
+ },
+ write: function write(dest, obj) {
+ var serialize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : JSON.stringify;
+ return localStorage.setItem(dest, serialize(obj));
+ }
+}; \ No newline at end of file
diff --git a/node_modules/lowdb/lib/file-async.js b/node_modules/lowdb/lib/file-async.js
new file mode 100644
index 0000000..d5c30c6
--- /dev/null
+++ b/node_modules/lowdb/lib/file-async.js
@@ -0,0 +1,22 @@
+'use strict';
+
+var steno = require('steno');
+
+var _require = require('./json'),
+ stringify = _require.stringify;
+
+module.exports = {
+ read: require('./file-sync').read,
+ write: function write(dest, obj) {
+ var serialize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringify;
+
+ return new Promise(function (resolve, reject) {
+ var data = serialize(obj);
+
+ steno.writeFile(dest, data, function (err) {
+ if (err) return reject(err);
+ resolve();
+ });
+ });
+ }
+}; \ No newline at end of file
diff --git a/node_modules/lowdb/lib/file-sync.js b/node_modules/lowdb/lib/file-sync.js
new file mode 100644
index 0000000..03def0e
--- /dev/null
+++ b/node_modules/lowdb/lib/file-sync.js
@@ -0,0 +1,37 @@
+'use strict';
+
+var fs = require('graceful-fs');
+
+var _require = require('./json'),
+ parse = _require.parse,
+ stringify = _require.stringify;
+
+module.exports = {
+ read: function read(source) {
+ var deserialize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : parse;
+
+ if (fs.existsSync(source)) {
+ // Read database
+ var data = fs.readFileSync(source, 'utf-8').trim() || '{}';
+
+ try {
+ return deserialize(data);
+ } catch (e) {
+ if (e instanceof SyntaxError) {
+ e.message = 'Malformed JSON in file: ' + source + '\n' + e.message;
+ }
+ throw e;
+ }
+ } else {
+ // Initialize empty database
+ fs.writeFileSync(source, '{}');
+ return {};
+ }
+ },
+ write: function write(dest, obj) {
+ var serialize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringify;
+
+ var data = serialize(obj);
+ fs.writeFileSync(dest, data);
+ }
+}; \ No newline at end of file
diff --git a/node_modules/lowdb/lib/index.browser.js b/node_modules/lowdb/lib/index.browser.js
new file mode 100644
index 0000000..3f38342
--- /dev/null
+++ b/node_modules/lowdb/lib/index.browser.js
@@ -0,0 +1,10 @@
+'use strict';
+
+var index = require('./_index');
+var storage = require('./browser');
+
+module.exports = function low(source) {
+ var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { storage: storage };
+
+ return index(source, opts, window._);
+}; \ No newline at end of file
diff --git a/node_modules/lowdb/lib/index.node.js b/node_modules/lowdb/lib/index.node.js
new file mode 100644
index 0000000..506165e
--- /dev/null
+++ b/node_modules/lowdb/lib/index.node.js
@@ -0,0 +1,13 @@
+'use strict';
+
+var lodash = require('lodash');
+var index = require('./_index');
+var storage = require('./file-sync');
+
+module.exports = function low(source) {
+ var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+ opts.storage = opts.storage || storage;
+
+ return index(source, opts, lodash);
+}; \ No newline at end of file
diff --git a/node_modules/lowdb/lib/json.js b/node_modules/lowdb/lib/json.js
new file mode 100644
index 0000000..77b0ac0
--- /dev/null
+++ b/node_modules/lowdb/lib/json.js
@@ -0,0 +1,10 @@
+'use strict';
+
+var jph = require('json-parse-helpfulerror');
+
+module.exports = {
+ parse: jph.parse,
+ stringify: function stringify(obj) {
+ return JSON.stringify(obj, null, 2);
+ }
+}; \ No newline at end of file