From fffab7306191f24c5eb5794eabd9e6abac11e0d5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 29 Dec 2025 19:23:56 +0200 Subject: [PATCH] feat(pdfjs): auto-watch dev --- packages/pdfjs-viewer/package.json | 3 ++- packages/pdfjs-viewer/scripts/build.ts | 30 ++++++++++++++++++++++++++ packages/pdfjs-viewer/src/custom.ts | 1 + 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/packages/pdfjs-viewer/package.json b/packages/pdfjs-viewer/package.json index a50adc9ae..af600763e 100644 --- a/packages/pdfjs-viewer/package.json +++ b/packages/pdfjs-viewer/package.json @@ -3,7 +3,8 @@ "version": "1.0.0", "private": true, "scripts": { - "build": "tsx scripts/build.ts" + "build": "tsx scripts/build.ts", + "watch": "tsx scripts/build.ts --watch" }, "dependencies": { "@triliumnext/commons": "workspace:*" diff --git a/packages/pdfjs-viewer/scripts/build.ts b/packages/pdfjs-viewer/scripts/build.ts index b268fcb1b..6f9d3a53d 100644 --- a/packages/pdfjs-viewer/scripts/build.ts +++ b/packages/pdfjs-viewer/scripts/build.ts @@ -2,8 +2,10 @@ import { join } from "path"; import BuildHelper from "../../../scripts/build-utils"; import { build as esbuild } from "esbuild"; import { LOCALES } from "@triliumnext/commons"; +import { watch } from "chokidar"; const build = new BuildHelper("packages/pdfjs-viewer"); +const watchMode = process.argv.includes("--watch"); const LOCALE_MAPPINGS: Record = { "es": "es-ES" @@ -34,6 +36,10 @@ async function main() { // Copy pdfjs-dist files. build.copy("/node_modules/pdfjs-dist/build/pdf.mjs", "build/pdf.mjs"); build.copy("/node_modules/pdfjs-dist/build/pdf.worker.mjs", "build/pdf.worker.mjs"); + + if (watchMode) { + watchForChanges(); + } } async function buildScript(outPath: string) { @@ -48,4 +54,28 @@ async function buildScript(outPath: string) { }); } +async function rebuildCustomFiles() { + await buildScript("web/custom.mjs"); + build.copy("src/custom.css", "web/custom.css"); +} + +function watchForChanges() { + console.log("Watching for changes in src directory..."); + const watcher = watch(join(build.projectDir, "src"), { + persistent: true, + ignoreInitial: true, + }); + + watcher.on("all", async (event, path) => { + console.log(`File ${event}: ${path}`); + console.log("Rebuilding..."); + try { + await rebuildCustomFiles(); + console.log("Rebuild complete!"); + } catch (error) { + console.error("Build failed:", error); + } + }); +} + main(); diff --git a/packages/pdfjs-viewer/src/custom.ts b/packages/pdfjs-viewer/src/custom.ts index aab78afc9..84ae4caeb 100644 --- a/packages/pdfjs-viewer/src/custom.ts +++ b/packages/pdfjs-viewer/src/custom.ts @@ -3,6 +3,7 @@ import interceptPersistence from "./persistence"; const LOG_EVENT_BUS = false; async function main() { + console.log("Hi"); interceptPersistence(getCustomAppOptions()); // Wait for the PDF viewer application to be available.