diff --git a/electron-docs-main.ts b/electron-docs-main.ts index 288f0c10e..4eb0a2421 100644 --- a/electron-docs-main.ts +++ b/electron-docs-main.ts @@ -20,22 +20,9 @@ async function main() { await initializeTranslations(); const zipBuffer = await createImportZip(); await initializeDatabase(); - cls.init(() => { - importData(zipBuffer); - }); - + await importData(zipBuffer); await startElectron(); - - - const events = (await import("./src/services/events.js")).default; - const debouncer = debounce(() => { - console.log("Exporting data"); - exportData(); - }, 10_000);; - events.subscribe(events.ENTITY_CHANGED, async () => { - console.log("Got entity changed"); - debouncer(); - }); + await registerHandlers(); } async function initializeDatabase() { @@ -48,37 +35,42 @@ async function initializeDatabase() { }); } -async function importData(input: Buffer) { - const beccaLoader = ((await import("./src/becca/becca_loader.js")).default); - const notes = ((await import("./src/services/notes.js")).default); - beccaLoader.load(); - const becca = ((await import("./src/becca/becca.js")).default); - const utils = ((await import("./src/services/utils.js")).default); - const eraseService = ((await import("./src/services/erase.js")).default); - const deleteId = utils.randomString(10); +function importData(input: Buffer) { + return new Promise((resolve, reject) => { + cls.init(async () => { + const beccaLoader = ((await import("./src/becca/becca_loader.js")).default); + const notes = ((await import("./src/services/notes.js")).default); + beccaLoader.load(); + const becca = ((await import("./src/becca/becca.js")).default); + const utils = ((await import("./src/services/utils.js")).default); + const eraseService = ((await import("./src/services/erase.js")).default); + const deleteId = utils.randomString(10); - const existingNote = becca.getNote(NOTE_ID_USER_GUIDE); - if (existingNote) { - existingNote.deleteNote(deleteId); - } - eraseService.eraseNotesWithDeleteId(deleteId); + const existingNote = becca.getNote(NOTE_ID_USER_GUIDE); + if (existingNote) { + existingNote.deleteNote(deleteId); + } + eraseService.eraseNotesWithDeleteId(deleteId); - const { note } = notes.createNewNoteWithTarget("into", "none_root", { - parentNoteId: "root", - noteId: NOTE_ID_USER_GUIDE, - title: "User Guide", - content: "The sub-children of this note are automatically synced.", - type: "text" + const { note } = notes.createNewNoteWithTarget("into", "none_root", { + parentNoteId: "root", + noteId: NOTE_ID_USER_GUIDE, + title: "User Guide", + content: "The sub-children of this note are automatically synced.", + type: "text" + }); + + const TaskContext = (await import("./src/services/task_context.js")).default; + const { importZip } = ((await import("./src/services/import/zip.js")).default); + const context = new TaskContext("no-report"); + await importZip(context, input, note, { preserveIds: true }); + + const { runOnDemandChecks } = (await import("./src/services/consistency_checks.js")).default; + await runOnDemandChecks(true); + resolve(); + }); }); - const TaskContext = (await import("./src/services/task_context.js")).default; - const { importZip } = ((await import("./src/services/import/zip.js")).default); - const context = new TaskContext("no-report"); - await importZip(context, input, note, { preserveIds: true }); - - const { runOnDemandChecks } = (await import("./src/services/consistency_checks.js")).default; - await runOnDemandChecks(true); - } async function createImportZip() { @@ -162,4 +154,16 @@ async function cleanUpMeta() { await fs.writeFile(metaPath, JSON.stringify(meta, null, 4)); } +async function registerHandlers() { + const events = (await import("./src/services/events.js")).default; + const debouncer = debounce(() => { + console.log("Exporting data"); + exportData(); + }, 10_000);; + events.subscribe(events.ENTITY_CHANGED, async (e) => { + console.log("Got entity changed ", e); + debouncer(); + }); +} + await main();