Versie 0.2.0

This commit is contained in:
Atreides Assets committed 2026-10-29 11:57:29 +01:00
commit e77d8fd373
495 files changed
+81026

No files matched your search

+43
View File
@@ -0,0 +1,43 @@
// Generated, do not edit. sha256:051b73ea4c90cd1dfd7110d9d56e91cb527361b375f6b09d6509f8db81b2835e
import * as db from '../db.js';
import { CONFIG } from '../../shared/config.js';
import { deleteValuation } from './valuations.js';
import { deleteProposal } from './proposals.js';
import { unlinkTxEvent } from './tx-links.js';
export function tableColumns(name) {
if (!CONFIG.DB_TABLES.includes(name)) throw new Error(`Unknown table: ${name}`);
return db.all(`PRAGMA table_info(${name})`).map(c => c.name);
}
export function listTableRaw(name) {
if (!CONFIG.DB_TABLES.includes(name)) throw new Error(`Unknown table: ${name}`);
return db.all(`SELECT * FROM ${name} ORDER BY rowid DESC`);
}
const TABLE_ROW_DELETERS = {
valuations: (id) => deleteValuation(id),
reconcile_proposals: (id) => deleteProposal(id),
tx_event_link: (id) => {
const r = db.one(`SELECT walletTransactionId, eventId FROM WalletTransactionEventLink WHERE id=?`, [id]);
if (!r) throw new Error(`Link ${id} does not exist.`);
return unlinkTxEvent(r.walletTransactionId, r.eventId);
},
};
export async function deleteTableRow(name, id) {
if (!CONFIG.DB_DELETABLE_TABLES.includes(name)) throw new Error(`Table ${name} is not deletable.`);
const custom = TABLE_ROW_DELETERS[name];
if (custom) { await custom(id); return; }
db.run(`DELETE FROM ${name} WHERE id=?`, [id]);
await db.persist();
}
export async function clearTable(name) {
if (!CONFIG.DB_DELETABLE_TABLES.includes(name)) throw new Error(`Table ${name} cannot be cleared.`);
const custom = TABLE_ROW_DELETERS[name];
if (custom) {
for (const r of db.all(`SELECT id FROM ${name}`)) await custom(r.id);
return;
}
db.run(`DELETE FROM ${name}`);
await db.persist();
}