@aidenlx/iframe-worker
Advanced tools
Comparing version 0.2.4-mod.3 to 0.2.4-mod.4
@@ -108,7 +108,7 @@ "use strict"; | ||
"<script>" + | ||
`postMessage= | ||
`window.postMessage= | ||
(message, origin) => { | ||
parent.postMessage(message, origin || "*") | ||
};` + | ||
`importScripts= | ||
`window.importScripts= | ||
(...urls) => urls.reduce((promise, url) => ( | ||
@@ -156,7 +156,13 @@ promise.then(() => new Promise(resolve => { | ||
postMessage(data) { | ||
void this.ready | ||
.catch() | ||
.then(() => { | ||
this.worker.dispatchEvent(new MessageEvent("message", { data })); | ||
}); | ||
void (async () => { | ||
try { | ||
await this.ready; | ||
} | ||
catch (e) { | ||
// Ignore errors | ||
} | ||
finally { | ||
this.worker.dispatchEvent(new MessageEvent("message", { data })); | ||
} | ||
})(); | ||
} | ||
@@ -163,0 +169,0 @@ /** |
@@ -105,7 +105,7 @@ /* | ||
"<script>" + | ||
`postMessage= | ||
`window.postMessage= | ||
(message, origin) => { | ||
parent.postMessage(message, origin || "*") | ||
};` + | ||
`importScripts= | ||
`window.importScripts= | ||
(...urls) => urls.reduce((promise, url) => ( | ||
@@ -153,7 +153,13 @@ promise.then(() => new Promise(resolve => { | ||
postMessage(data) { | ||
void this.ready | ||
.catch() | ||
.then(() => { | ||
this.worker.dispatchEvent(new MessageEvent("message", { data })); | ||
}); | ||
void (async () => { | ||
try { | ||
await this.ready; | ||
} | ||
catch (e) { | ||
// Ignore errors | ||
} | ||
finally { | ||
this.worker.dispatchEvent(new MessageEvent("message", { data })); | ||
} | ||
})(); | ||
} | ||
@@ -160,0 +166,0 @@ /** |
{ | ||
"name": "@aidenlx/iframe-worker", | ||
"version": "0.2.4-mod.3", | ||
"version": "0.2.4-mod.4", | ||
"description": "A tiny WebWorker polyfill for the file:// protocol", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -1,5 +0,5 @@ | ||
"use strict";(()=>{function d(){let t=document.createElement("iframe");return t.width=t.height=t.frameBorder="0",t}var o=class{constructor(e,n){this.scriptText=e;this.onerror=null;this.onmessage=null;this.onmessageerror=null;this.handleMessage=e=>{e.source===this.worker&&(e.stopImmediatePropagation(),this.dispatchEvent(new MessageEvent("message",{data:e.data})),this.onmessage&&this.onmessage(e))};this.handleError=(e,n,r,s,i)=>{if(n===this.scriptText.toString()){let a=new ErrorEvent("error",{message:e,filename:n,lineno:r,colno:s,error:i});this.dispatchEvent(a),this.onerror&&this.onerror(a)}};if(typeof n!="undefined")throw new TypeError("Options are not supported for iframe workers");let r=new EventTarget;this.addEventListener=r.addEventListener.bind(r),this.removeEventListener=r.removeEventListener.bind(r),this.dispatchEvent=r.dispatchEvent.bind(r),document.body.appendChild(this.iframe=d()),this.worker.document.open(),this.worker.document.write(`<html><body><script>postMessage= | ||
"use strict";(()=>{function d(){let t=document.createElement("iframe");return t.width=t.height=t.frameBorder="0",t}var n=class{constructor(e,o){this.scriptText=e;this.onerror=null;this.onmessage=null;this.onmessageerror=null;this.handleMessage=e=>{e.source===this.worker&&(e.stopImmediatePropagation(),this.dispatchEvent(new MessageEvent("message",{data:e.data})),this.onmessage&&this.onmessage(e))};this.handleError=(e,o,r,s,i)=>{if(o===this.scriptText.toString()){let a=new ErrorEvent("error",{message:e,filename:o,lineno:r,colno:s,error:i});this.dispatchEvent(a),this.onerror&&this.onerror(a)}};if(typeof o!="undefined")throw new TypeError("Options are not supported for iframe workers");let r=new EventTarget;this.addEventListener=r.addEventListener.bind(r),this.removeEventListener=r.removeEventListener.bind(r),this.dispatchEvent=r.dispatchEvent.bind(r),document.body.appendChild(this.iframe=d()),this.worker.document.open(),this.worker.document.write(`<html><body><script>window.postMessage= | ||
(message, origin) => { | ||
parent.postMessage(message, origin || "*") | ||
};importScripts= | ||
};window.importScripts= | ||
(...urls) => urls.reduce((promise, url) => ( | ||
@@ -12,2 +12,2 @@ promise.then(() => new Promise(resolve => { | ||
})) | ||
), Promise.resolve());addEventListener("error",ev=>{parent.dispatchEvent(new ErrorEvent("error",{filename:"${e.substring(0,50)}",error:ev.error}))})<\/script><script type="module">${e}<\/script></body></html>`),this.worker.document.close(),window.addEventListener("message",this.handleMessage),window.onerror=this.handleError,this.ready=new Promise((s,i)=>{this.worker.onload=s,this.worker.onerror=i})}terminate(){document.body.removeChild(this.iframe),window.removeEventListener("message",this.handleMessage),window.onerror=null}postMessage(e){this.ready.catch().then(()=>{this.worker.dispatchEvent(new MessageEvent("message",{data:e}))})}get worker(){return this.iframe.contentWindow}};window.IFrameWorker=o;location.protocol==="file:"&&(window.Worker=o);})(); | ||
), Promise.resolve());addEventListener("error",ev=>{parent.dispatchEvent(new ErrorEvent("error",{filename:"${e.substring(0,50)}",error:ev.error}))})<\/script><script type="module">${e}<\/script></body></html>`),this.worker.document.close(),window.addEventListener("message",this.handleMessage),window.onerror=this.handleError,this.ready=new Promise((s,i)=>{this.worker.onload=s,this.worker.onerror=i})}terminate(){document.body.removeChild(this.iframe),window.removeEventListener("message",this.handleMessage),window.onerror=null}postMessage(e){(async()=>{try{await this.ready}catch(o){}finally{this.worker.dispatchEvent(new MessageEvent("message",{data:e}))}})()}get worker(){return this.iframe.contentWindow}};window.IFrameWorker=n;location.protocol==="file:"&&(window.Worker=n);})(); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
48251
719