MCPcopy Create free account
hub / github.com/TeleBoxOrg/TeleBox_Plugins / getDB

Function getDB

bs/bs.ts:53–88  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

51let dbPromise: Promise<Low<BsDB>> | null = null;
52
53async function getDB() {
54 if (!dbPromise) {
55 dbPromise = JSONFilePreset<BsDB>(filePath, {
56 seq: String(defaultTargets.length),
57 mode: MODE_SEQUENCE,
58 targets: defaultTargets,
59 });
60 }
61 const db = await dbPromise;
62
63 const data = (db.data ??= {
64 seq: String(defaultTargets.length),
65 mode: MODE_SEQUENCE,
66 targets: [...defaultTargets],
67 });
68
69 if (!Array.isArray(data.targets)) {
70 data.targets = [];
71 }
72
73 if (!data.mode) {
74 data.mode = MODE_SEQUENCE;
75 }
76
77 const maxId = data.targets.reduce((max, target) => {
78 const idNum = Number(target.id);
79 return Number.isFinite(idNum) ? Math.max(max, idNum) : max;
80 }, 0);
81
82 const seqNum = Number(data.seq);
83 if (!Number.isFinite(seqNum) || seqNum < maxId) {
84 data.seq = String(maxId);
85 }
86
87 return db;
88}
89
90function nextId(db: Low<BsDB>): string {
91 const current = Number(db.data?.seq ?? "0");

Callers 1

BsPluginClass · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected