frpc-desktop/electron/dao/BaseDao.ts
2025-02-18 17:52:09 +08:00

49 lines
814 B
TypeScript

import Datastore from "nedb";
import path from "path";
import { app } from "electron";
interface BaseDaoInterface<T> {
db: Datastore;
insert(t: T): Promise<T>;
updateById(t: T): T;
deleteById(id: string): void;
findAll(): T[];
}
class BaseDao<T> implements BaseDaoInterface<T> {
db: Datastore;
constructor(dbName: string) {
const dbFilename = path.join(app.getPath("userData"), `${dbName}-v2.db`);
this.db = new Datastore({
autoload: true,
filename: dbFilename
});
// todo log
}
async insert(t: T): Promise<T> {
return new Promise<T>((resolve, reject) => {
resolve(t);
});
}
updateById(t: T): T {
return null;
}
deleteById(id: string): void {
return null;
}
findAll(): T[] {
return null;
}
}
export default BaseDao;