|
|
|
@ -1,3 +1,5 @@
|
|
|
|
|
import getCrossOriginWorkerURL from 'crossoriginworker' |
|
|
|
|
|
|
|
|
|
// Returns a blob:// URL which points
|
|
|
|
|
// to a javascript file which will call
|
|
|
|
|
// importScripts with the given URL
|
|
|
|
@ -6,18 +8,20 @@ export function getWorkerURL(url: string) {
|
|
|
|
|
return URL.createObjectURL(new Blob([content], { type: 'text/javascript' })) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export function initWorker(url: string) { |
|
|
|
|
export async function initWorker(url: string) { |
|
|
|
|
let worker: Worker | null = null |
|
|
|
|
try { |
|
|
|
|
if (/^https?:\/\/'/.test(url)) { |
|
|
|
|
const worker_url = getWorkerURL(url) |
|
|
|
|
worker = new Worker(worker_url) |
|
|
|
|
URL.revokeObjectURL(worker_url) |
|
|
|
|
} else { |
|
|
|
|
worker = new Worker(url, { |
|
|
|
|
type: 'module', |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
const workerURL = await getCrossOriginWorkerURL(url) |
|
|
|
|
worker = new Worker(workerURL) |
|
|
|
|
// if (/^https?:\/\/'/.test(url)) {
|
|
|
|
|
// // const worker_url = getWorkerURL(url)
|
|
|
|
|
// // worker = new Worker(worker_url)
|
|
|
|
|
// // URL.revokeObjectURL(worker_url)
|
|
|
|
|
// } else {
|
|
|
|
|
// worker = new Worker(url, {
|
|
|
|
|
// type: 'module',
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
} catch (e) { |
|
|
|
|
console.error(e) |
|
|
|
|
} |
|
|
|
|