docs: refactor TS example
[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
ac35d84e 9 data?: MyData
e9e16250
CQ
10}
11
ac35d84e 12class MyThreadWorker extends ThreadWorker<MyData, MyResponse> {
cf9aa6c3 13 constructor () {
ac35d84e 14 super(async (data?: MyData) => await this.process(data), {
6677a3d3 15 maxInactiveTime: 60000
cf9aa6c3 16 })
e9e16250
CQ
17 }
18
ac35d84e 19 private async process (data?: MyData): Promise<MyResponse> {
041dc05b 20 return await new Promise(resolve => {
e9e16250 21 setTimeout(() => {
cf9aa6c3 22 resolve({ message: 'Hello from Worker :)', data })
fbcf5e15 23 }, 1000)
cf9aa6c3 24 })
e9e16250
CQ
25 }
26}
27
cf9aa6c3 28export default new MyThreadWorker()