worker-lib 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -11
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,10 +4,97 @@
|
|
|
4
4
|
|
|
5
5
|
Library for easy use of web-worker and worker_threads.
|
|
6
6
|
|
|
7
|
+
```ts
|
|
8
|
+
import { createWorker, initWorker } from "worker-lib"; //auto
|
|
9
|
+
import { createWorker, initWorker } from "worker-lib/node"; // Node.js worker_threads
|
|
10
|
+
import { createWorker, initWorker } from "worker-lib/web-worker"; // Web Worker
|
|
11
|
+
```
|
|
12
|
+
|
|
7
13
|
## Example
|
|
8
14
|
|
|
15
|
+
https://github.com/SoraKumo001/worker-lib-samples/
|
|
16
|
+
|
|
9
17
|
### Node.js (worker_threads)
|
|
10
18
|
|
|
19
|
+
- src/worker-test.ts
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { initWorker } from "worker-lib";
|
|
23
|
+
|
|
24
|
+
const add = (a: number, b: number) => {
|
|
25
|
+
for (let i = 0; i < 1000000000; i++); //Overload unnecessarily
|
|
26
|
+
return a + b;
|
|
27
|
+
};
|
|
28
|
+
const add2 = (a: string, b: string) => {
|
|
29
|
+
for (let i = 0; i < 1000000000; i++); //Overload unnecessarily
|
|
30
|
+
return a + b;
|
|
31
|
+
};
|
|
32
|
+
const sub = (a: number, b: number) => {
|
|
33
|
+
for (let i = 0; i < 1000000000; i++); //Overload unnecessarily
|
|
34
|
+
return a - b;
|
|
35
|
+
};
|
|
36
|
+
const mul = (a: number, b: number) => {
|
|
37
|
+
for (let i = 0; i < 1000000000; i++); //Overload unnecessarily
|
|
38
|
+
return a * b;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const error = (a: number, b: number) => {
|
|
42
|
+
for (let i = 0; i < 1000000000; i++); //Overload unnecessarily
|
|
43
|
+
throw new Error("throw");
|
|
44
|
+
return a + b;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// Initialization process to make it usable in Worker.
|
|
48
|
+
const map = initWorker({ add, add2, sub, mul, error });
|
|
49
|
+
// Export only the type
|
|
50
|
+
export type WorkerTest = typeof map;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
- src/index.ts
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
import { Worker } from "node:worker_threads";
|
|
57
|
+
import { createWorker } from "worker-lib";
|
|
58
|
+
import type { WorkerTest } from "./worker-test";
|
|
59
|
+
import path from "node:path";
|
|
60
|
+
|
|
61
|
+
const { execute, close } = createWorker<WorkerTest>(
|
|
62
|
+
() => new Worker(path.resolve(__dirname, "./worker-test.js")),
|
|
63
|
+
4 // Maximum parallel number
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
const main = async () => {
|
|
67
|
+
const a = 300;
|
|
68
|
+
const b = 100;
|
|
69
|
+
const p = [
|
|
70
|
+
execute("add", a, b).then((result) => {
|
|
71
|
+
console.log("add", result);
|
|
72
|
+
}),
|
|
73
|
+
execute("add2", a.toString(), b.toString()).then((result) => {
|
|
74
|
+
console.log("add2", result);
|
|
75
|
+
}),
|
|
76
|
+
execute("sub", a, b).then((result) => {
|
|
77
|
+
console.log("sub", result);
|
|
78
|
+
}),
|
|
79
|
+
execute("mul", a, b).then((result) => {
|
|
80
|
+
console.log("sub", result);
|
|
81
|
+
}),
|
|
82
|
+
execute("error", a, b)
|
|
83
|
+
.then((result) => {
|
|
84
|
+
console.log("error", result);
|
|
85
|
+
})
|
|
86
|
+
.catch((e) => {
|
|
87
|
+
console.error("error", e);
|
|
88
|
+
}),
|
|
89
|
+
];
|
|
90
|
+
console.log("Start");
|
|
91
|
+
await Promise.all(p);
|
|
92
|
+
close(); // Close the worker
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
main();
|
|
96
|
+
```
|
|
97
|
+
|
|
11
98
|
### Next.js (Web Worker)
|
|
12
99
|
|
|
13
100
|
- src/libs/worker-test.ts
|
|
@@ -156,14 +243,3 @@ const Page = () => {
|
|
|
156
243
|
};
|
|
157
244
|
export default Page;
|
|
158
245
|
```
|
|
159
|
-
|
|
160
|
-
### How to use execute
|
|
161
|
-
|
|
162
|
-
Types are automatically given by TypeScript.
|
|
163
|
-
|
|
164
|
-
- basic form
|
|
165
|
-
`execute("function name",... parameter) : Promise<resultType>`
|
|
166
|
-
|
|
167
|
-
- For the add sample
|
|
168
|
-
`execute("add",number,number) : Promise<number>`
|
|
169
|
-
`execute("add2,string,string) : Promise<string>`
|