49 lines
814 B
TypeScript
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;
|