瀏覽代碼

Add Deno support

Arjun Barrett 4 年之前
父節點
當前提交
c5405aabf7
共有 1 個文件被更改,包括 9 次插入1 次删除
  1. 9 1
      src/worker.ts

+ 9 - 1
src/worker.ts

@@ -1,7 +1,15 @@
 const ch2: Record<string, string> = {};
 
+let durl = (c: string) => URL.createObjectURL(new Blob([c], { type: 'text/javascript' }));
+
+try {
+  durl('')
+} catch(e) {
+  durl = c => 'data:application/javascript;charset=UTF-8,' + encodeURI(c);
+}
+
 export default <T>(c: string, id: number, msg: unknown, transfer: ArrayBuffer[], cb: (err: Error, msg: T) => void) => {
-  const u = ch2[id] ||= URL.createObjectURL(new Blob([c], { type: 'text/javascript' }));
+  const u = ch2[id] ||= durl(c);
   const w = new Worker(u);
   w.onerror = e => cb(e.error, null);
   w.onmessage = e => cb(null, e.data);