diff options
| author | 8cy <[email protected]> | 2020-04-03 02:37:42 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-04-03 02:37:42 -0700 |
| commit | 60867fb030bae582082340ead7dbc7efdc2f5398 (patch) | |
| tree | 4c6a7356351be2e4914e15c4703172597c45656e /node_modules/lowdb/lib | |
| parent | commenting (diff) | |
| download | s5nical-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.js | 100 | ||||
| -rw-r--r-- | node_modules/lowdb/lib/browser.js | 21 | ||||
| -rw-r--r-- | node_modules/lowdb/lib/file-async.js | 22 | ||||
| -rw-r--r-- | node_modules/lowdb/lib/file-sync.js | 37 | ||||
| -rw-r--r-- | node_modules/lowdb/lib/index.browser.js | 10 | ||||
| -rw-r--r-- | node_modules/lowdb/lib/index.node.js | 13 | ||||
| -rw-r--r-- | node_modules/lowdb/lib/json.js | 10 |
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 |