DawnLauncher/electron/commons/betterSqlite3.ts
2023-11-03 15:17:45 +08:00

41 lines
1.2 KiB
TypeScript

import { join, dirname } from "node:path";
import Database from "better-sqlite3-multiple-ciphers";
import { getUserDataPath } from "../main/commons";
let database: Database.Database;
let cacheDatabase: Database.Database;
function getDataSqlite3() {
let filename = join(getUserDataPath(), "Data.db");
database ??= new Database(filename, {
nativeBinding: join(
process.env.NODE_ENV !== "development" ? dirname(process.execPath) : "",
import.meta.env.VITE_BETTER_SQLITE3_BINDING
),
});
return database;
}
function getCacheDataSqlite3() {
let filename = join(getUserDataPath(), "CacheData.db");
cacheDatabase ??= new Database(filename, {
nativeBinding: join(
process.env.NODE_ENV !== "development" ? dirname(process.execPath) : "",
import.meta.env.VITE_BETTER_SQLITE3_BINDING
),
});
return cacheDatabase;
}
function getCustomDataSqlite3(filePath: string) {
let db = new Database(filePath, {
nativeBinding: join(
process.env.NODE_ENV !== "development" ? dirname(process.execPath) : "",
import.meta.env.VITE_BETTER_SQLITE3_BINDING
),
});
return db;
}
export { getDataSqlite3, getCacheDataSqlite3, getCustomDataSqlite3 };