mirror of
https://github.com/rubickCenter/rubick
synced 2025-06-11 14:04:06 +08:00
51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
const fs = require("fs");
|
|
|
|
const getlocalDataFile = () => {
|
|
let localDataFile = process.env.HOME;
|
|
if (!localDataFile) {
|
|
localDataFile = process.env.LOCALAPPDATA;
|
|
}
|
|
return localDataFile;
|
|
};
|
|
|
|
function saveData(path, value) {
|
|
fs.writeFileSync(path, JSON.stringify(value));
|
|
}
|
|
|
|
function getData(path, defaultValue) {
|
|
try {
|
|
return JSON.parse(fs.readFileSync(path, 'utf8'));
|
|
} catch (e) {
|
|
return defaultValue || undefined;
|
|
}
|
|
}
|
|
|
|
const isArray = Array.isArray ||
|
|
function(object){ return object instanceof Array }
|
|
|
|
function isPlainObject(obj) {
|
|
return isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype
|
|
}
|
|
|
|
function isObject(obj) { return typeof obj == "object" }
|
|
|
|
|
|
function extend(target, source, deep) {
|
|
for (let key in source)
|
|
if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {
|
|
if (isPlainObject(source[key]) && !isPlainObject(target[key]))
|
|
target[key] = {}
|
|
if (isArray(source[key]) && !isArray(target[key]))
|
|
target[key] = []
|
|
extend(target[key], source[key], deep)
|
|
}
|
|
else if (source[key] !== undefined) target[key] = source[key]
|
|
}
|
|
|
|
module.exports = {
|
|
getlocalDataFile,
|
|
saveData,
|
|
getData,
|
|
extend
|
|
}
|