Files
scan-tools/scripts/prepare-ocr-assets.mjs
2026-09-01 14:34:51 +02:00

36 lines
1.1 KiB
JavaScript

import { copyFile, mkdir, rm } from "node:fs/promises";
import path from "node:path";
import { fileURLToPath } from "node:url";
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
const output = path.join(root, "public", "ocr");
await rm(output, { recursive: true, force: true });
await mkdir(path.join(output, "core"), { recursive: true });
await mkdir(path.join(output, "lang"), { recursive: true });
await copyFile(
path.join(root, "node_modules", "tesseract.js", "dist", "worker.min.js"),
path.join(output, "worker.min.js"),
);
for (const name of [
"tesseract-core-lstm.wasm.js",
"tesseract-core-simd-lstm.wasm.js",
"tesseract-core-relaxedsimd-lstm.wasm.js",
])
await copyFile(
path.join(root, "node_modules", "tesseract.js-core", name),
path.join(output, "core", name),
);
await copyFile(
path.join(
root,
"node_modules",
"@tesseract.js-data",
"eng",
"4.0.0_best_int",
"eng.traineddata.gz",
),
path.join(output, "lang", "eng.traineddata.gz"),
);
console.log("Prepared same-origin OCR runtime and English model");