diff --git a/modules/rnotes/converters/index.ts b/modules/rnotes/converters/index.ts index 769b40b..f95e731 100644 --- a/modules/rnotes/converters/index.ts +++ b/modules/rnotes/converters/index.ts @@ -73,16 +73,26 @@ export function registerConverter(converter: NoteConverter): void { } export function getConverter(id: string): NoteConverter | undefined { + ensureConvertersLoaded(); return converters.get(id); } export function getAllConverters(): NoteConverter[] { + ensureConvertersLoaded(); return Array.from(converters.values()); } -// ── Import converters on module load ── -// These register themselves when imported -import './obsidian'; -import './logseq'; -import './notion'; -import './google-docs'; +// ── Lazy-load converters to avoid circular init ── +// Each converter imports registerConverter from this file; importing them +// synchronously at the module level causes a "Cannot access before +// initialization" error in Bun because the converters Map hasn't been +// assigned yet when the circular import triggers registerConverter(). +let _loaded = false; +export function ensureConvertersLoaded(): void { + if (_loaded) return; + _loaded = true; + require('./obsidian'); + require('./logseq'); + require('./notion'); + require('./google-docs'); +}