Improve L2 market parsing and data handling

This commit is contained in:
2026-08-11 22:24:36 +03:00
parent de41230b9b
commit af9cd1e92d
58 changed files with 2474 additions and 444 deletions
+26 -1
View File
@@ -1,3 +1,5 @@
import { readFile } from "node:fs/promises";
import { resolve } from "node:path";
import { defineConfig, loadEnv } from "vite";
const MAX_BATCH_BYTES = 96 * 1024;
@@ -54,6 +56,27 @@ function marketImportProxy(options) {
};
}
function fixtureOcrAssets() {
const assets = new Map([
["/__fixtures/tesseract/worker.min.js", ["node_modules/tesseract.js/dist/worker.min.js", "text/javascript"]],
["/__fixtures/tesseract/tesseract-core-simd-lstm.wasm.js", ["node_modules/tesseract.js-core/tesseract-core-simd-lstm.wasm.js", "text/javascript"]],
["/__fixtures/tesseract/tesseract-core-simd-lstm.wasm", ["node_modules/tesseract.js-core/tesseract-core-simd-lstm.wasm", "application/wasm"]],
["/__fixtures/tessdata/eng.traineddata", ["eng.traineddata", "application/octet-stream"]],
]);
return {
name: "fixture-ocr-assets",
configureServer(server) {
server.middlewares.use(async (request, response, next) => {
const asset = assets.get(request.url?.split("?", 1)[0]);
if (!asset) return next();
response.statusCode = 200;
response.setHeader("Content-Type", asset[1]);
response.end(await readFile(resolve(asset[0])));
});
},
};
}
function readBody(request) {
return new Promise((resolve, reject) => {
const chunks = [];
@@ -82,11 +105,13 @@ export default defineConfig(({ mode }) => {
const environment = loadEnv(mode, process.cwd(), "");
return {
base: "./",
define: { __FIXTURE_OCR__: JSON.stringify(mode === "test") },
plugins: [
mode === "test" ? fixtureOcrAssets() : null,
marketImportProxy({
url: environment.L2_MARKET_IMPORT_URL,
token: L2_MARKET_IMPORT_TOKEN,
}),
],
].filter(Boolean),
};
});