Refactor PDF conversion utilities and update Linux build script
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit

- 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.
This commit is contained in:
Tom Butcher 2026-07-28 22:50:31 +01:00
parent bee95563d8
commit 56628cbbe5
2 changed files with 3 additions and 22 deletions

View File

@ -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),

View File

@ -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);