mirror of
https://github.com/thewesker/bug-em.git
synced 2025-12-20 12:11:05 -05:00
39 lines
965 B
JavaScript
39 lines
965 B
JavaScript
'use strict';
|
|
|
|
var fs = require('graceful-fs');
|
|
|
|
var _require = require('./json');
|
|
|
|
var parse = _require.parse;
|
|
var stringify = _require.stringify;
|
|
|
|
|
|
module.exports = {
|
|
read: function read(source) {
|
|
var deserialize = arguments.length <= 1 || arguments[1] === undefined ? parse : arguments[1];
|
|
|
|
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 ? stringify : arguments[2];
|
|
|
|
var data = serialize(obj);
|
|
fs.writeFileSync(dest, data);
|
|
}
|
|
}; |