frpc-desktop/electron/storage/version.ts

91 lines
2.6 KiB
TypeScript
Raw Normal View History

2023-11-27 15:03:25 +08:00
import Datastore from "nedb";
import path from "path";
2024-08-22 14:19:19 +08:00
import { app } from "electron";
import { logInfo, logError, LogModule, logDebug } from "../utils/log";
2023-11-27 15:03:25 +08:00
const versionDB = new Datastore({
2024-08-22 14:19:19 +08:00
autoload: true,
filename: path.join(app.getPath("userData"), "version.db")
2023-11-27 15:03:25 +08:00
});
/**
* Insert version
2024-08-16 23:59:40 +08:00
* @param version
2023-11-27 15:03:25 +08:00
* @param cb
*/
export const insertVersion = (
2024-08-22 14:19:19 +08:00
version: FrpVersion,
cb?: (err: Error | null, document: any) => void
2023-11-27 15:03:25 +08:00
) => {
logInfo(LogModule.DB, `Inserting version: ${JSON.stringify(version)}`);
versionDB.insert(version, (err, document) => {
if (err) {
logError(LogModule.DB, `Error inserting version: ${err.message}`);
} else {
logInfo(LogModule.DB, `Version inserted successfully: ${JSON.stringify(document)}`);
}
if (cb) cb(err, document);
});
2023-11-27 15:03:25 +08:00
};
/**
* List versions
2023-11-27 15:03:25 +08:00
* @param cb
*/
export const listVersion = (
2024-08-22 14:19:19 +08:00
callback: (err: Error | null, documents: FrpVersion[]) => void
2023-11-27 15:03:25 +08:00
) => {
logInfo(LogModule.DB, "Listing all versions.");
versionDB.find({}, (err, documents) => {
if (err) {
logError(LogModule.DB, `Error listing versions: ${err.message}`);
} else {
logInfo(LogModule.DB, `Successfully listed versions: ${documents.length} found.`);
}
callback(err, documents);
});
2023-11-27 15:03:25 +08:00
};
export const getVersionById = (
2024-08-22 14:19:19 +08:00
id: number,
callback: (err: Error | null, document: FrpVersion) => void
2023-11-27 15:03:25 +08:00
) => {
logInfo(LogModule.DB, `Retrieving version by ID: ${id}`);
versionDB.findOne({ id: id }, (err, document) => {
if (err) {
logError(LogModule.DB, `Error retrieving version by ID: ${err.message}`);
} else {
logInfo(LogModule.DB, `Version retrieved successfully: ${JSON.stringify(document)}`);
}
callback(err, document);
});
2023-11-27 15:03:25 +08:00
};
2024-07-17 14:21:31 +08:00
2024-08-22 14:19:19 +08:00
export const deleteVersionById = (
id: string,
callback: (err: Error | null, document: any) => void
) => {
logInfo(LogModule.DB, `Deleting version: ${id}`);
versionDB.remove({ id: id }, (err, document) => {
if (err) {
logError(LogModule.DB, `Error deleting version: ${err.message}`);
} else {
logInfo(LogModule.DB, `Version deleted successfully: ${id}`);
}
callback(err, document);
});
2024-08-22 14:19:19 +08:00
};
export const clearVersion = (cb?: (err: Error | null, n: number) => void) => {
logInfo(LogModule.DB, "Clearing all versions from the database.");
versionDB.remove({}, { multi: true }, (err, n) => {
if (err) {
logError(LogModule.DB, `Error clearing versions: ${err.message}`);
} else {
logInfo(LogModule.DB, `Successfully cleared versions. Number of documents removed: ${n}`);
}
if (cb) cb(err, n);
});
2024-08-22 14:19:19 +08:00
};