UNPKG

@xylabs/threads

Version:

Web workers & worker threads as simple as a function call

33 lines (25 loc) 890 B
// Source: <https://github.com/parcel-bundler/parcel/blob/master/packages/core/parcel-bundler/src/builtins/bundle-url.js> let bundleURL: string | undefined function getBundleURLCached(): string { if (!bundleURL) { bundleURL = getBundleURL() } return bundleURL } function getBundleURL(): string { // Attempt to find the URL of the current script and use that as the base URL try { throw new Error('getBundleURL failed') } catch (ex) { const err = ex as Error const matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\/\/[^\n)]+/g) if (matches) { return getBaseURL(matches[0]) } } return '/' } function getBaseURL(url: string): string { return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\/\/.+)?\/[^/]+(?:\?.*)?$/, '$1') + '/' } export { getBundleURLCached as getBundleURL }