54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
const sqlite = require("better-sqlite3");
|
|
const path = require("path");
|
|
const fs = require("fs");
|
|
|
|
const configFolder = path.join(
|
|
process.platform == "win32"
|
|
? process.env["LOCALAPPDATA"]
|
|
: process.env["HOME"],
|
|
"EZPPLauncher",
|
|
);
|
|
if (!fs.existsSync(configFolder)) fs.mkdirSync(configFolder);
|
|
|
|
const dbFile = path.join(configFolder, "ezpplauncher.db");
|
|
|
|
const db = sqlite(dbFile);
|
|
db.pragma("journal_mode = WAL");
|
|
|
|
db.exec(
|
|
"CREATE TABLE IF NOT EXISTS config (configKey VARCHAR PRIMARY KEY, configValue VARCHAR);",
|
|
);
|
|
|
|
const set = (key, value) => {
|
|
db.prepare(
|
|
`INSERT OR REPLACE INTO config (configKey, configValue) VALUES (?, ?)`,
|
|
).run(key, value);
|
|
};
|
|
|
|
const remove = (key) => {
|
|
db.prepare(`DELETE FROM config WHERE configKey = ?`).run(key);
|
|
};
|
|
|
|
const get = (
|
|
key,
|
|
) => {
|
|
const result = db.prepare(
|
|
"SELECT configKey key, configValue val FROM config WHERE key = ?",
|
|
).get(key);
|
|
return result ? result.val ?? undefined : undefined;
|
|
};
|
|
|
|
const all = () => {
|
|
const result = db.prepare(
|
|
`SELECT configKey key, configValue val FROM config WHERE 1`,
|
|
).all();
|
|
return result ?? undefined;
|
|
};
|
|
|
|
module.exports = {
|
|
all,
|
|
get,
|
|
set,
|
|
remove,
|
|
};
|