vomebook commited on
Commit
181a701
·
verified ·
1 Parent(s): 16c2f4c

Polyfill PDF.js Map upsert inside worker

Browse files
Files changed (2) hide show
  1. static/pdf-worker-wrapper.mjs +17 -0
  2. static/reader.js +1 -1
static/pdf-worker-wrapper.mjs ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ if (!Map.prototype.getOrInsertComputed) {
2
+ Map.prototype.getOrInsertComputed = function(key, callback) {
3
+ if (this.has(key)) return this.get(key);
4
+ const value = callback(key);
5
+ this.set(key, value);
6
+ return value;
7
+ };
8
+ }
9
+
10
+ const pendingMessages = [];
11
+ const bufferMessage = event => pendingMessages.push(event);
12
+ self.addEventListener("message", bufferMessage);
13
+
14
+ import("./vendor/pdf.worker.min.mjs").then(() => {
15
+ self.removeEventListener("message", bufferMessage);
16
+ for (const event of pendingMessages) self.dispatchEvent(new MessageEvent("message", { data: event.data }));
17
+ });
static/reader.js CHANGED
@@ -1,5 +1,5 @@
1
  const PDFJS_URL = "/static/vendor/pdf.min.mjs";
2
- const PDFJS_WORKER_URL = "/static/vendor/pdf.worker.min.mjs";
3
  const EPUB_URL = "/static/vendor/epub.min.js";
4
  const MARKED_URL = "/static/vendor/marked.min.js";
5
  const PURIFY_URL = "/static/vendor/purify.min.js";
 
1
  const PDFJS_URL = "/static/vendor/pdf.min.mjs";
2
+ const PDFJS_WORKER_URL = "/static/pdf-worker-wrapper.mjs";
3
  const EPUB_URL = "/static/vendor/epub.min.js";
4
  const MARKED_URL = "/static/vendor/marked.min.js";
5
  const PURIFY_URL = "/static/vendor/purify.min.js";