toHex polyfill

This commit is contained in:
2026-07-06 09:42:15 +02:00
parent 54d4dc9545
commit 6386326473
5 changed files with 35 additions and 12 deletions

9
src/pdf/pdfJs.ts Normal file
View File

@@ -0,0 +1,9 @@
import './uint8ArrayToHexPolyfill';
import * as pdfjsLib from 'pdfjs-dist/legacy/build/pdf.mjs';
import pdfjsWorker from './pdfjsWorker?worker&url';
// pdf.js worker setup for Vite.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(pdfjsLib as any).GlobalWorkerOptions.workerSrc = pdfjsWorker;
export { pdfjsLib };

View File

@@ -1,9 +1,4 @@
import * as pdfjsLib from 'pdfjs-dist/legacy/build/pdf.mjs';
import pdfjsWorker from 'pdfjs-dist/legacy/build/pdf.worker.mjs?worker&url';
// pdf.js worker setup for Vite
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(pdfjsLib as any).GlobalWorkerOptions.workerSrc = pdfjsWorker;
import { pdfjsLib } from './pdfJs';
type RotationsMap = Record<number, number>; // key: 0-based page index, value: degrees

2
src/pdf/pdfjsWorker.ts Normal file
View File

@@ -0,0 +1,2 @@
import './uint8ArrayToHexPolyfill';
import 'pdfjs-dist/legacy/build/pdf.worker.mjs';

View File

@@ -0,0 +1,22 @@
type Uint8ArrayWithToHex = Uint8Array & {
toHex?: () => string;
};
const uint8ArrayPrototype = Uint8Array.prototype as Uint8ArrayWithToHex;
if (typeof uint8ArrayPrototype.toHex !== 'function') {
Object.defineProperty(Uint8Array.prototype, 'toHex', {
value: function toHex(this: Uint8Array): string {
const hex = new Array<string>(this.length);
for (let index = 0; index < this.length; index += 1) {
const value = this[index].toString(16);
hex[index] = value.length === 1 ? `0${value}` : value;
}
return hex.join('');
},
writable: true,
configurable: true,
});
}