From 56628cbbe54a5efe6dfcc9cf552dc27fc87e47b0 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Tue, 28 Jul 2026 22:50:31 +0100 Subject: [PATCH] Refactor PDF conversion utilities and update Linux build script - Removed unnecessary external dependencies from the Linux binary build script to streamline the build process. - Simplified the import mechanism for the `pdf-to-img` and `sharp` modules in the PDF conversion utilities, enhancing module loading efficiency. --- scripts/build-linux-binary.mjs | 9 --------- src/pdfUtils.js | 16 +++------------- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/scripts/build-linux-binary.mjs b/scripts/build-linux-binary.mjs index 623d381..930a61c 100644 --- a/scripts/build-linux-binary.mjs +++ b/scripts/build-linux-binary.mjs @@ -26,15 +26,6 @@ const result = await Bun.build({ outdir: path.join(rootDir, "build/linux-bundle"), target: "bun", format: "esm", - external: [ - "sharp", - "canvas", - "@napi-rs/canvas", - "pdf-to-img", - "pdfjs-dist", - "@img/*", - "@napi-rs/*", - ], define: { "process.env.FC_PACKAGE_VERSION": JSON.stringify(packageJson.version), "process.env.FC_BUILD_NUMBER": JSON.stringify(buildNumber), diff --git a/src/pdfUtils.js b/src/pdfUtils.js index b7c520c..3bf4393 100644 --- a/src/pdfUtils.js +++ b/src/pdfUtils.js @@ -1,25 +1,15 @@ /** * PDF conversion utilities loaded on demand so headless startup - * does not require ESM-only pdf-to-img at module load time. + * does not require pdf-to-img at module load time. */ -import { pathToFileURL } from "node:url"; -import { createRequire } from "node:module"; - -const require = createRequire(import.meta.url); - -async function importPackage(name) { - const packagePath = require.resolve(name); - return import(pathToFileURL(packagePath).href); -} - function resolveDefault(module) { return module?.default ?? module; } export async function convertPDFToImage(pdfInput, options = {}) { const [pdfToImgModule, sharpModule] = await Promise.all([ - importPackage("pdf-to-img"), - importPackage("sharp"), + import("pdf-to-img"), + import("sharp"), ]); const { pdf } = pdfToImgModule; const sharp = resolveDefault(sharpModule);