Add typescript examples
[poolifier.git] / examples / typescript / worker.ts
1 import { ThreadWorker } from "poolifier";
2
3 export interface MyData {
4 ok: number;
5 }
6
7 export interface MyResponse {
8 message: string;
9 data: MyData;
10 }
11
12 class MyThreadWorker extends ThreadWorker<MyData, Promise<MyResponse>> {
13 constructor() {
14 super((data) => this.process(data), {
15 maxInactiveTime: 60_000,
16 async: true,
17 });
18 }
19
20 private async process(data: MyData): Promise<MyResponse> {
21 return new Promise((resolve) => {
22 setTimeout(() => {
23 resolve({ message: "Hello from Worker :)", data });
24 }, 10_000);
25 });
26 }
27 }
28
29 export default new MyThreadWorker();