36 lines
1.1 KiB
JavaScript
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");
|