From 07a1734d4b269d0b6fdef6b93f7d167316d8bcdb Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 29 Dec 2025 19:07:37 +0200 Subject: [PATCH] chore(pdfjs): copy locales during build --- packages/pdfjs-viewer/package.json | 3 +++ packages/pdfjs-viewer/scripts/build.ts | 26 ++++++++++++++++++++++++- packages/pdfjs-viewer/tsconfig.app.json | 3 +++ pnpm-lock.yaml | 6 ++++-- scripts/build-utils.ts | 9 +++++++++ 5 files changed, 44 insertions(+), 3 deletions(-) diff --git a/packages/pdfjs-viewer/package.json b/packages/pdfjs-viewer/package.json index bfddfa275..a50adc9ae 100644 --- a/packages/pdfjs-viewer/package.json +++ b/packages/pdfjs-viewer/package.json @@ -6,6 +6,9 @@ "build": "tsx scripts/build.ts" }, "dependencies": { + "@triliumnext/commons": "workspace:*" + }, + "devDependencies": { "pdfjs-dist": "5.4.530" } } diff --git a/packages/pdfjs-viewer/scripts/build.ts b/packages/pdfjs-viewer/scripts/build.ts index d4b04f322..b268fcb1b 100644 --- a/packages/pdfjs-viewer/scripts/build.ts +++ b/packages/pdfjs-viewer/scripts/build.ts @@ -1,13 +1,37 @@ import { join } from "path"; import BuildHelper from "../../../scripts/build-utils"; import { build as esbuild } from "esbuild"; +import { LOCALES } from "@triliumnext/commons"; const build = new BuildHelper("packages/pdfjs-viewer"); +const LOCALE_MAPPINGS: Record = { + "es": "es-ES" +}; + async function main() { - build.copy("viewer", "web"); + // Copy the viewer files. + for (const file of [ "viewer.css", "viewer.html", "viewer.mjs" ]) { + build.copy(`viewer/${file}`, `web/${file}`); + } + build.copy(`viewer/images`, `web/images`); + + // Copy the custom files. await buildScript("web/custom.mjs"); build.copy("src/custom.css", "web/custom.css"); + + // Copy locales. + const localeMappings = {}; + for (const locale of LOCALES) { + if (locale.id === "en" || locale.contentOnly || locale.devOnly) continue; + const mappedLocale = LOCALE_MAPPINGS[locale.electronLocale] || locale.electronLocale.replace("_", "-"); + const localePath = `${locale.id}/viewer.ftl`; + build.copy(`viewer/locale/${mappedLocale}/viewer.ftl`, `web/locale/${localePath}`); + localeMappings[locale.id] = localePath; + } + build.writeJson("web/locale/locale.json", localeMappings); + + // 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"); } diff --git a/packages/pdfjs-viewer/tsconfig.app.json b/packages/pdfjs-viewer/tsconfig.app.json index 973162d8c..f6d82c11b 100644 --- a/packages/pdfjs-viewer/tsconfig.app.json +++ b/packages/pdfjs-viewer/tsconfig.app.json @@ -22,5 +22,8 @@ "eslint.config.mjs" ], "references": [ + { + "path": "../commons/tsconfig.app.json" + } ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 015db5cd4..1d9ca206b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1375,6 +1375,10 @@ importers: packages/pdfjs-viewer: dependencies: + '@triliumnext/commons': + specifier: workspace:* + version: link:../commons + devDependencies: pdfjs-dist: specifier: 5.4.530 version: 5.4.530 @@ -16044,8 +16048,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.3.0 '@ckeditor/ckeditor5-utils': 47.3.0 ckeditor5: 47.3.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-restricted-editing@47.3.0': dependencies: diff --git a/scripts/build-utils.ts b/scripts/build-utils.ts index 6a08f112e..b3cb33afe 100644 --- a/scripts/build-utils.ts +++ b/scripts/build-utils.ts @@ -87,6 +87,15 @@ export default class BuildHelper { } } + writeJson(relativePath: string, data: any) { + const fullPath = join(this.outDir, relativePath); + const dirPath = fullPath.substring(0, fullPath.lastIndexOf("/")); + if (dirPath) { + mkdirpSync(dirPath); + } + writeFileSync(fullPath, JSON.stringify(data, null, 4), "utf-8"); + } + } function tryPath(paths: string[]) {