import { ScrapbookItemConfig } from './ScrapbookPreset'; import { ScrapbookPresetType } from './ScrapbookPreset'; type PresetGenerator = () => ScrapbookItemConfig[]; // Internal map of preset name to generator const presetRegistry = new Map(); /** * Register a new scrapbook preset under the given name. */ export function registerPreset(name: string, gen: PresetGenerator) { presetRegistry.set(name, gen); } /** * List all registered preset names. */ export function getPresetNames(): string[] { return Array.from(presetRegistry.keys()); } /** * Create the config array for the named preset. */ export function createPreset(name: string): ScrapbookItemConfig[] { const gen = presetRegistry.get(name); if (!gen) throw new Error(`Unknown scrapbook preset: ${name}`); return gen(); } // ------------------------ // Register built-in presets import { ScrapbookPreset } from './ScrapbookPreset'; Object.keys(ScrapbookPresetType).forEach(key => registerPreset(key, () => ScrapbookPreset.createPreset(key as ScrapbookPresetType))); // pretter-ignore