UNPKG

isoworker

Version:

Isomorphic workerization with dependencies

24 lines (23 loc) 791 B
"use strict"; var wk = function (c, msg, transfer, cb) { var w; try { var url = URL.createObjectURL(new Blob([c], { type: 'text/javascript' })); w = new Worker(url); URL.revokeObjectURL(url); } catch (e) { w = new Worker('data:application/javascript;charset=UTF-8,' + encodeURI(c)); } w.postMessage(msg, transfer); w.addEventListener('message', function (ev) { return cb(null, ev.data); }); w.addEventListener('error', function (ev) { return cb(ev.error, null); }); return w; }; wk.t = [ArrayBuffer, MessagePort]; wk.c = [Blob, File, FileList, ImageData]; if (typeof ImageBitmap != 'undefined') wk.t.push(ImageBitmap); if (typeof OffscreenCanvas != 'undefined') wk.t.push(OffscreenCanvas); exports["default"] = wk;