27 lines
725 B
JavaScript
27 lines
725 B
JavaScript
'use strict';
|
|
const { db } = require('../db');
|
|
|
|
function getSetting(key, fallback = null) {
|
|
const row = db.prepare('SELECT value FROM settings WHERE key = ?').get(key);
|
|
return row ? row.value : fallback;
|
|
}
|
|
|
|
function setSetting(key, value) {
|
|
db.prepare(
|
|
`INSERT INTO settings (key, value) VALUES (?, ?)
|
|
ON CONFLICT(key) DO UPDATE SET value = excluded.value`
|
|
).run(key, value == null ? null : String(value));
|
|
}
|
|
|
|
function getJSON(key, fallback = {}) {
|
|
const raw = getSetting(key);
|
|
if (!raw) return fallback;
|
|
try { return JSON.parse(raw); } catch { return fallback; }
|
|
}
|
|
|
|
function setJSON(key, obj) {
|
|
setSetting(key, JSON.stringify(obj));
|
|
}
|
|
|
|
module.exports = { getSetting, setSetting, getJSON, setJSON };
|