Spaces:
Paused
Paused
| import { getDbInstance } from "./core"; | |
| interface SecretRow { | |
| value?: string; | |
| } | |
| export function getPersistedSecret(key: string): string | null { | |
| try { | |
| const db = getDbInstance(); | |
| const row = db | |
| .prepare("SELECT value FROM key_value WHERE namespace = 'secrets' AND key = ?") | |
| .get(key) as SecretRow | undefined; | |
| return typeof row?.value === "string" ? JSON.parse(row.value) : null; | |
| } catch { | |
| return null; | |
| } | |
| } | |
| export function persistSecret(key: string, value: string): void { | |
| try { | |
| const db = getDbInstance(); | |
| db.prepare( | |
| "INSERT OR IGNORE INTO key_value (namespace, key, value) VALUES ('secrets', ?, ?)" | |
| ).run(key, JSON.stringify(value)); | |
| } catch { | |
| // Non-fatal: secrets still work for the current process if persistence fails. | |
| } | |
| } | |