Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 3x 2x 3x 3x 2x | import { workerFactory } from '../worker-interface';
function isHtmlScriptElement(scriptElement: HTMLOrSVGScriptElement): scriptElement is HTMLScriptElement {
return 'src' in scriptElement;
}
const THIS_SCRIPT_URL: string | undefined =
(document && document.currentScript && isHtmlScriptElement(document.currentScript) && document.currentScript.src)
? document.currentScript.src
: undefined;
workerFactory.createWorker = () => {
// Notes:
// 1. The expectation is that the current script is loaded through a <script> element with a context that sets
// document.currentScript. This excludes newer contexts such as running as a module script or running in a shadow
// tree. https://html.spec.whatwg.org/multipage/dom.html#dom-document-currentscript
// If you are seeing this error, either change the <script> element to a more traditional context, or use the ES6
// module distribution from dist/es6 and use a bundler for your web app.
// 2. Current browsers do not support {type: 'module'} as `options` argument yet.
return THIS_SCRIPT_URL === undefined
? 'Failed to create web worker because the URL of the current script could not be determined.'
: new Worker(THIS_SCRIPT_URL);
};
|