chore: use `biome` instead of `rome`
[poolifier.git] / examples / typescript / worker.ts
CommitLineData
cf9aa6c3 1import { ThreadWorker } from 'poolifier'
e9e16250
CQ
2
3export interface MyData {
f33d3b69 4 ok: 0 | 1
e9e16250
CQ
5}
6
7export interface MyResponse {
cf9aa6c3 8 message: string
9 data: MyData
e9e16250
CQ
10}
11
12class MyThreadWorker extends ThreadWorker<MyData, Promise<MyResponse>> {
cf9aa6c3 13 constructor () {
78cea37e
JB
14 // eslint-disable-next-line @typescript-eslint/promise-function-async
15 super((data: MyData) => this.process(data), {
6677a3d3 16 maxInactiveTime: 60000
cf9aa6c3 17 })
e9e16250
CQ
18 }
19
cf9aa6c3 20 private async process (data: MyData): Promise<MyResponse> {
8ebe6c30 21 return await new Promise((resolve) => {
e9e16250 22 setTimeout(() => {
cf9aa6c3 23 resolve({ message: 'Hello from Worker :)', data })
b93306dc 24 }, 10000)
cf9aa6c3 25 })
e9e16250
CQ
26 }
27}
28
cf9aa6c3 29export default new MyThreadWorker()