shared-worker-loader
Version:
Shared Worker loader for Webpack
24 lines (22 loc) • 776 B
JavaScript
// http://stackoverflow.com/questions/10343913/how-to-create-a-web-worker-from-a-string
var URL = window.URL || window.webkitURL;
module.exports = function(content, url, name) {
try {
try {
var blob;
try { // BlobBuilder = Deprecated, but widely implemented
var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;
blob = new BlobBuilder();
blob.append(content);
blob = blob.getBlob();
} catch(e) { // The proposed API
blob = new Blob([content]);
}
return new SharedWorker(URL.createObjectURL(blob), name);
} catch(e) {
return new SharedWorker('data:application/javascript,' + encodeURIComponent(content), name);
}
} catch(e) {
return new SharedWorker(url, name);
}
}