import { readFileSync } from 'node:fs' // Setup-Skripte, die Collections in Appwrite anlegen (Blockformat: 'id', ... \n ],) const SETUP_SCRIPTS = ['setup-abo-collections.mjs', 'setup-finanzen.mjs'] /** * Attribut-Schlüssel einer Collection, wie sie scripts/setup-abo-collections.mjs bzw. * scripts/setup-finanzen.mjs in Appwrite anlegen. Tests geben sie dem Appwrite-Nachbau als Schema: * Schreibt der Code ein Feld, das das Setup-Skript nicht anlegt, scheitert der Test wie Appwrite in * Produktion. */ export function schemaKeys(collection) { for (const script of SETUP_SCRIPTS) { const src = readFileSync(new URL(`../../scripts/${script}`, import.meta.url), 'utf8') const start = src.indexOf(`'${collection}',`) if (start < 0) continue const block = src.slice(start, src.indexOf('\n ],', start)) return [...block.matchAll(/key: '(\w+)'/g)].map((m) => m[1]) } throw new Error(`Collection ${collection} fehlt im Setup-Skript`) }