mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 21:19:01 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { extractZip, initializeDatabase, startElectron } from "./electron-utils.js";
 | 
						|
import { initializeTranslations } from "./src/services/i18n.js";
 | 
						|
import debounce from "./src/public/app/services/debounce.js";
 | 
						|
import fs from "fs/promises";
 | 
						|
 | 
						|
const DEMO_ZIP_PATH = "db/demo.zip";
 | 
						|
 | 
						|
async function main() {
 | 
						|
    await initializeTranslations();
 | 
						|
    await initializeDatabase();
 | 
						|
 | 
						|
    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();
 | 
						|
 | 
						|
        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("./src/services/export/zip.js")).default;
 | 
						|
    await exportToZipFile("root", "html", DEMO_ZIP_PATH);
 | 
						|
}
 | 
						|
 | 
						|
await main();
 |