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.
Files changed (2) hide show
  1. package/README.md +87 -11
  2. 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>`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "worker-lib",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "main": "./dist/cjs/index.js",
5
5
  "types": "./dist/cjs/index.d.ts",
6
6
  "exports": {