mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 10:02:59 +08:00
44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
import { extractZip, initializeDatabase, startElectron } from "./electron-utils.js";
|
|
import { initializeTranslations } from "@triliumnext/server/src/services/i18n.js";
|
|
import debounce from "@triliumnext/client/src/services/debounce.js";
|
|
import fs from "fs/promises";
|
|
|
|
const DEMO_ZIP_PATH = "db/demo.zip";
|
|
|
|
async function main() {
|
|
await initializeTranslations();
|
|
await initializeDatabase(false);
|
|
|
|
await startElectron();
|
|
await registerHandlers();
|
|
}
|
|
|
|
async function registerHandlers() {
|
|
const events = (await import("@triliumnext/server/src/services/events.js")).default;
|
|
const eraseService = (await import("@triliumnext/server/src/services/erase.js")).default;
|
|
const debouncer = debounce(async () => {
|
|
console.log("Exporting data");
|
|
eraseService.eraseUnusedAttachmentsNow();
|
|
await exportData();
|
|
|
|
const outputDir = "demo";
|
|
await fs.rmdir(outputDir, { recursive: true }).catch(() => {});
|
|
await extractZip(DEMO_ZIP_PATH, outputDir);
|
|
}, 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("@triliumnext/server/src/services/export/zip.js")).default;
|
|
await exportToZipFile("root", "html", DEMO_ZIP_PATH);
|
|
}
|
|
|
|
main();
|