mirror of
https://github.com/zadam/trilium.git
synced 2026-04-11 14:37:41 +02:00
chore(edit-demo): ensure proper tree expansion state
This commit is contained in:
12385
apps/edit-docs/demo/!!!meta.json
vendored
12385
apps/edit-docs/demo/!!!meta.json
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,11 @@
|
||||
import { extractZip, importData, initializeDatabase, startElectron } from "./utils.js";
|
||||
import { createZipFromDirectory, extractZip, importData, initializeDatabase, startElectron } from "./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";
|
||||
import { join } from "path";
|
||||
import cls from "@triliumnext/server/src/services/cls.js";
|
||||
import type { NoteMetaFile } from "@triliumnext/server/src/services/meta/note_meta.js";
|
||||
import type NoteMeta from "@triliumnext/server/src/services/meta/note_meta.js";
|
||||
|
||||
// Paths are relative to apps/edit-docs/dist.
|
||||
const DEMO_ZIP_PATH = join(__dirname, "../../server/src/assets/db/demo.zip");
|
||||
@@ -50,8 +52,10 @@ async function registerHandlers() {
|
||||
eraseService.eraseUnusedAttachmentsNow();
|
||||
await exportData();
|
||||
|
||||
await fs.rmdir(DEMO_ZIP_DIR_PATH, { recursive: true }).catch(() => {});
|
||||
await fs.rm(DEMO_ZIP_DIR_PATH, { recursive: true }).catch(() => {});
|
||||
await extractZip(DEMO_ZIP_PATH, DEMO_ZIP_DIR_PATH);
|
||||
await cleanUpMeta(DEMO_ZIP_DIR_PATH);
|
||||
await createZipFromDirectory(DEMO_ZIP_DIR_PATH, DEMO_ZIP_PATH);
|
||||
}, 10_000);
|
||||
events.subscribe(events.ENTITY_CHANGED, async (e) => {
|
||||
if (e.entityName === "options") {
|
||||
@@ -68,4 +72,28 @@ async function exportData() {
|
||||
await exportToZipFile("root", "html", DEMO_ZIP_PATH);
|
||||
}
|
||||
|
||||
const EXPANDED_NOTE_IDS = new Set([
|
||||
"root",
|
||||
"rvaX6hEaQlmk" // Trilium Demo
|
||||
]);
|
||||
|
||||
async function cleanUpMeta(dirPath: string) {
|
||||
const metaPath = join(dirPath, "!!!meta.json");
|
||||
const meta = JSON.parse(await fs.readFile(metaPath, "utf-8")) as NoteMetaFile;
|
||||
|
||||
for (const file of meta.files) {
|
||||
file.notePosition = 1;
|
||||
traverse(file);
|
||||
}
|
||||
|
||||
function traverse(el: NoteMeta) {
|
||||
el.isExpanded = EXPANDED_NOTE_IDS.has(el.noteId);
|
||||
for (const child of el.children || []) {
|
||||
traverse(child);
|
||||
}
|
||||
}
|
||||
|
||||
await fs.writeFile(metaPath, JSON.stringify(meta, null, 4));
|
||||
}
|
||||
|
||||
main();
|
||||
|
||||
@@ -103,6 +103,14 @@ function waitForEnd(archive: Archiver, stream: WriteStream) {
|
||||
});
|
||||
}
|
||||
|
||||
export async function createZipFromDirectory(dirPath: string, zipPath: string) {
|
||||
const archive = archiver("zip", { zlib: { level: 5 } });
|
||||
const outputStream = fsExtra.createWriteStream(zipPath);
|
||||
archive.directory(dirPath, false);
|
||||
archive.pipe(outputStream);
|
||||
await waitForEnd(archive, outputStream);
|
||||
}
|
||||
|
||||
export async function extractZip(zipFilePath: string, outputPath: string, ignoredFiles?: Set<string>) {
|
||||
const promise = deferred<void>();
|
||||
setTimeout(async () => {
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user