Merge branch 'master' into chore/use-biome
[poolifier.git] / examples / typescript / worker.ts
1 import { ThreadWorker } from 'poolifier'
2
3 export interface MyData {
4 ok: 0 | 1
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 // eslint-disable-next-line @typescript-eslint/promise-function-async
15 super((data: MyData) => this.process(data), {
16 maxInactiveTime: 60000
17 })
18 }
19
20 private async process (data: MyData): Promise<MyResponse> {
21 return await new Promise(resolve => {
22 setTimeout(() => {
23 resolve({ message: 'Hello from Worker :)', data })
24 }, 10000)
25 })
26 }
27 }
28
29 export default new MyThreadWorker()