Refine a bit TS example
[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 async: true
18 })
19 }
20
21 private async process (data: MyData): Promise<MyResponse> {
22 return await new Promise(resolve => {
23 setTimeout(() => {
24 resolve({ message: 'Hello from Worker :)', data })
25 }, 10000)
26 })
27 }
28 }
29
30 export default new MyThreadWorker()