Skip to content

Commit 40cfb57

Browse files
committed
Use dynamic imports and make createWorker async
1 parent 8b47031 commit 40cfb57

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

src/createWorker.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
1-
import {getWorkerImplementation as getWebWorker} from "./master/implementation.browser"
2-
import {getWorkerImplementation as getNodeWorker } from "./master/implementation.node"
3-
41
import {
52
BlobWorker,
63
CreateWorkerOptions,
74
WorkerImplementation,
85
} from "./types/master"
96

10-
export function createWorker(workerPath: string & Blob, options: CreateWorkerOptions) {
7+
/** async function to creat a webworker. This function uses dynamic imports to only import the required implementation */
8+
export async function createWorker(workerPath: string & Blob, options: CreateWorkerOptions) {
119
let WorkerConstructor: typeof WorkerImplementation | typeof BlobWorker
1210
if (options.backend === "web") {
11+
const { getWorkerImplementation } = await import("./master/implementation.browser")
1312
WorkerConstructor = options.blob ?
14-
getWebWorker().blob :
15-
getWebWorker().default
13+
getWorkerImplementation().blob :
14+
getWorkerImplementation().default
1615
} else if (options.backend === "node") {
16+
const { getWorkerImplementation } = await import("./master/implementation.node")
1717
WorkerConstructor = options.blob ?
18-
getNodeWorker("node").blob :
19-
getNodeWorker("node").default
18+
getWorkerImplementation("node").blob :
19+
getWorkerImplementation("node").default
2020
} else if (options.backend === "tiny") {
21+
const { getWorkerImplementation } = await import("./master/implementation.node")
2122
WorkerConstructor = options.blob ?
22-
getNodeWorker("tiny").blob :
23-
getNodeWorker("tiny").default
23+
getWorkerImplementation("tiny").blob :
24+
getWorkerImplementation("tiny").default
2425
} else {
2526
throw new Error("The worker backend is not supported.")
2627
}

0 commit comments

Comments
 (0)