mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 10:02:59 +08:00
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
![]() |
import { importData, initializeDatabase, startElectron } from "./electron-utils.js";
|
||
|
import { initializeTranslations } from "./src/services/i18n.js";
|
||
|
import fs from "fs";
|
||
|
import debounce from "./src/public/app/services/debounce.js";
|
||
|
|
||
|
const DEMO_NOTE_ID = "demo";
|
||
|
const DEMO_ZIP_PATH = "db/demo.zip";
|
||
|
|
||
|
async function main() {
|
||
|
await initializeTranslations();
|
||
|
await initializeDatabase();
|
||
|
|
||
|
const demoBuffer = fs.readFileSync(DEMO_ZIP_PATH);
|
||
|
await importData(demoBuffer, DEMO_NOTE_ID);
|
||
|
|
||
|
await startElectron();
|
||
|
await registerHandlers();
|
||
|
}
|
||
|
|
||
|
async function registerHandlers() {
|
||
|
const events = (await import("./src/services/events.js")).default;
|
||
|
const eraseService = (await import("./src/services/erase.js")).default;
|
||
|
const debouncer = debounce(async () => {
|
||
|
console.log("Exporting data");
|
||
|
eraseService.eraseUnusedAttachmentsNow();
|
||
|
await exportData();
|
||
|
}, 10_000);;
|
||
|
events.subscribe(events.ENTITY_CHANGED, async (e) => {
|
||
|
if (e.entityName === "options") {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
console.log("Got entity changed ", e);
|
||
|
debouncer();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async function exportData() {
|
||
|
const { exportToZipFile } = (await import("./src/services/export/zip.js")).default;
|
||
|
await exportToZipFile(DEMO_NOTE_ID, "html", DEMO_ZIP_PATH);
|
||
|
}
|
||
|
|
||
|
await main();
|