Files
Infosec/lib/settings.js
T
2026-09-13 20:10:17 +01:00

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 };