generated from coulomb/repo-seed
Set pdfjs GlobalWorkerOptions.workerSrc at app bootstrap
The PDF.js library refuses to open documents without a worker URL. Production builds were throwing "No GlobalWorkerOptions.workerSrc specified" on any upload because neither the source-layer ingest (extract.ts) nor the viewer adapter ever set one — they relied on the host application to do it, and the browser bootstrap didn't. main.tsx now imports the worker via Vite's `?url` suffix so the file is bundled into the build, and sets GlobalWorkerOptions.workerSrc once before any PDF code runs. Added src/vite-env.d.ts so TypeScript knows about the `?url` import suffix. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,16 @@
|
|||||||
import { StrictMode } from "react";
|
import { StrictMode } from "react";
|
||||||
import { createRoot } from "react-dom/client";
|
import { createRoot } from "react-dom/client";
|
||||||
|
import * as pdfjs from "pdfjs-dist";
|
||||||
|
// Vite resolves `?url` to a bundled asset URL the browser can fetch.
|
||||||
|
import pdfWorkerUrl from "pdfjs-dist/build/pdf.worker.min.mjs?url";
|
||||||
|
|
||||||
import { App } from "./App";
|
import { App } from "./App";
|
||||||
|
|
||||||
|
// PDF.js needs a worker URL before any PDF is parsed. Set it once at app
|
||||||
|
// bootstrap so both the source-layer ingest (extract.ts) and the viewer
|
||||||
|
// adapter (PdfSpikeViewer) can open documents.
|
||||||
|
pdfjs.GlobalWorkerOptions.workerSrc = pdfWorkerUrl;
|
||||||
|
|
||||||
const container = document.getElementById("root");
|
const container = document.getElementById("root");
|
||||||
if (!container) throw new Error("#root not found");
|
if (!container) throw new Error("#root not found");
|
||||||
|
|
||||||
|
|||||||
1
src/vite-env.d.ts
vendored
Normal file
1
src/vite-env.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/// <reference types="vite/client" />
|
||||||
Reference in New Issue
Block a user