diff options
Diffstat (limited to 'node_modules/lowdb/lib/file-sync.js')
| -rw-r--r-- | node_modules/lowdb/lib/file-sync.js | 37 |
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 |