summaryrefslogtreecommitdiff
path: root/node_modules/lowdb/lib/file-sync.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/lowdb/lib/file-sync.js')
-rw-r--r--node_modules/lowdb/lib/file-sync.js37
1 files changed, 37 insertions, 0 deletions
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