@aidenlx/iframe-worker
Advanced tools
Comparing version 0.2.4-mod.1 to 0.2.4-mod.2
@@ -25,3 +25,2 @@ "use strict"; | ||
exports.IFrameWorker = void 0; | ||
const runtime_1 = require("./runtime"); | ||
/* ---------------------------------------------------------------------------- | ||
@@ -110,7 +109,18 @@ * Helper functions | ||
"<script>" + | ||
`postMessage=${runtime_1.postMessage};` + | ||
`importScripts=${runtime_1.importScripts};` + | ||
`postMessage= | ||
(message, origin) => { | ||
parent.postMessage(message, origin || "*") | ||
};` + | ||
`importScripts= | ||
(...urls: string[]) => urls.reduce((promise, url) => ( | ||
promise.then(() => new Promise(resolve => { | ||
const script = document.createElement("script") | ||
script.src = url | ||
script.addEventListener("load", () => resolve()) | ||
document.body.appendChild(script) | ||
})) | ||
), Promise.resolve());` + | ||
"addEventListener(\"error\",ev=>{" + | ||
"parent.dispatchEvent(new ErrorEvent(\"error\",{" + | ||
`filename:"${scriptText}",` + | ||
`filename:"${scriptText.substring(0, 50)}",` + | ||
"error:ev.error" + | ||
@@ -117,0 +127,0 @@ "}))" + |
@@ -22,3 +22,2 @@ /* | ||
*/ | ||
import { importScripts, postMessage } from "./runtime"; | ||
/* ---------------------------------------------------------------------------- | ||
@@ -107,7 +106,18 @@ * Helper functions | ||
"<script>" + | ||
`postMessage=${postMessage};` + | ||
`importScripts=${importScripts};` + | ||
`postMessage= | ||
(message, origin) => { | ||
parent.postMessage(message, origin || "*") | ||
};` + | ||
`importScripts= | ||
(...urls: string[]) => urls.reduce((promise, url) => ( | ||
promise.then(() => new Promise(resolve => { | ||
const script = document.createElement("script") | ||
script.src = url | ||
script.addEventListener("load", () => resolve()) | ||
document.body.appendChild(script) | ||
})) | ||
), Promise.resolve());` + | ||
"addEventListener(\"error\",ev=>{" + | ||
"parent.dispatchEvent(new ErrorEvent(\"error\",{" + | ||
`filename:"${scriptText}",` + | ||
`filename:"${scriptText.substring(0, 50)}",` + | ||
"error:ev.error" + | ||
@@ -114,0 +124,0 @@ "}))" + |
{ | ||
"name": "@aidenlx/iframe-worker", | ||
"version": "0.2.4-mod.1", | ||
"version": "0.2.4-mod.2", | ||
"description": "A tiny WebWorker polyfill for the file:// protocol", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -1,1 +0,12 @@ | ||
"use strict";(()=>{function d(t,e){parent.postMessage(t,e||"*")}function c(...t){return t.reduce((e,n)=>e.then(()=>new Promise(r=>{let o=document.createElement("script");o.src=n,o.addEventListener("load",()=>r()),document.body.appendChild(o)})),Promise.resolve())}function m(){let t=document.createElement("iframe");return t.width=t.height=t.frameBorder="0",t}var i=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,o,s)=>{if(n===this.scriptText.toString()){let a=new ErrorEvent("error",{message:e,filename:n,lineno:r,colno:o,error:s});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=m()),this.worker.document.open(),this.worker.document.write(`<html><body><script>postMessage=${d};importScripts=${c};addEventListener("error",ev=>{parent.dispatchEvent(new ErrorEvent("error",{filename:"${e}",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((o,s)=>{this.worker.onload=o,this.worker.onerror=s})}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=i;location.protocol==="file:"&&(window.Worker=i);})(); | ||
"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= | ||
(message, origin) => { | ||
parent.postMessage(message, origin || "*") | ||
};importScripts= | ||
(...urls: string[]) => urls.reduce((promise, url) => ( | ||
promise.then(() => new Promise(resolve => { | ||
const script = document.createElement("script") | ||
script.src = url | ||
script.addEventListener("load", () => resolve()) | ||
document.body.appendChild(script) | ||
})) | ||
), 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);})(); |
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
47809
706