91 lines
2.3 KiB
TypeScript
91 lines
2.3 KiB
TypeScript
import Datastore from "nedb";
|
|
import path from "path";
|
|
import { app } from "electron";
|
|
|
|
import { logInfo, logError, LogModule, logDebug } from "../utils/log";
|
|
import { maskSensitiveData } from "../utils/desensitize";
|
|
|
|
const configDB = new Datastore({
|
|
autoload: true,
|
|
filename: path.join(app.getPath("userData"), "config.db")
|
|
});
|
|
/**
|
|
* 保存
|
|
*/
|
|
export const saveConfig = (
|
|
document: FrpConfig,
|
|
cb?: (err: Error | null, numberOfUpdated: number, upsert: boolean) => void
|
|
) => {
|
|
document["_id"] = "1";
|
|
logDebug(
|
|
LogModule.DB,
|
|
`Saving configuration to the database. ${JSON.stringify(
|
|
maskSensitiveData(document, [
|
|
"serverAddr",
|
|
"serverPort",
|
|
"authToken",
|
|
"user",
|
|
"metaToken"
|
|
])
|
|
)}`
|
|
);
|
|
configDB.update(
|
|
{ _id: "1" },
|
|
document,
|
|
{ upsert: true },
|
|
(err, numberOfUpdated, upsert) => {
|
|
if (err) {
|
|
logError(
|
|
LogModule.DB,
|
|
`Error saving configuration: ${err.message}`
|
|
);
|
|
} else {
|
|
logInfo(
|
|
LogModule.DB,
|
|
`Configuration saved successfully. Updated: ${numberOfUpdated}, Upsert: ${upsert}`
|
|
); // 添加成功日志
|
|
}
|
|
if (cb) cb(err, numberOfUpdated, upsert);
|
|
}
|
|
);
|
|
};
|
|
|
|
/**
|
|
* 查找
|
|
* @param cb
|
|
*/
|
|
export const getConfig = (
|
|
cb: (err: Error | null, document: FrpConfig) => void
|
|
) => {
|
|
logInfo(LogModule.DB, "Retrieving configuration from the database."); // 添加信息日志
|
|
configDB.findOne({ _id: "1" }, (err, document) => {
|
|
if (err) {
|
|
logError(
|
|
LogModule.DB,
|
|
`Error retrieving configuration: ${err.message}`
|
|
); // 添加错误日志
|
|
} else {
|
|
logInfo(LogModule.DB, "Configuration retrieved successfully."); // 添加成功日志
|
|
}
|
|
cb(err, document);
|
|
});
|
|
};
|
|
|
|
export const clearConfig = (cb?: (err: Error | null, n: number) => void) => {
|
|
logInfo(LogModule.DB, "Clearing all configurations from the database."); // 添加信息日志
|
|
configDB.remove({}, { multi: true }, (err, n) => {
|
|
if (err) {
|
|
logError(
|
|
LogModule.DB,
|
|
`Error clearing configurations: ${err.message}`
|
|
); // 添加错误日志
|
|
} else {
|
|
logInfo(
|
|
LogModule.DB,
|
|
`Successfully cleared configurations. Number of documents removed: ${n}`
|
|
); // 添加成功日志
|
|
}
|
|
if (cb) cb(err, n);
|
|
});
|
|
};
|