Add typescript examples
[poolifier.git] / examples / typescript / worker.ts
CommitLineData
e9e16250
CQ
1import { ThreadWorker } from "poolifier";
2
3export interface MyData {
4 ok: number;
5}
6
7export interface MyResponse {
8 message: string;
9 data: MyData;
10}
11
12class 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
29export default new MyThreadWorker();