refactor: renable standard JS linter rules
[poolifier.git] / examples / typescript / http-server-pool / fastify-worker_threads / src / worker.ts
CommitLineData
fac9ce96 1import { ThreadWorker } from 'poolifier'
167c661c
JB
2import {
3 type BodyPayload,
4 type WorkerData,
5 type WorkerResponse
6} from './types.js'
7
a8706532 8class RequestHandlerWorker<
167c661c
JB
9 Data extends WorkerData<BodyPayload>,
10 Response extends WorkerResponse<BodyPayload>
a8706532 11> extends ThreadWorker<Data, Response> {
8538ea4c
JB
12 private static readonly factorial: (n: number) => number = n => {
13 if (n === 0) {
14 return 1
15 }
16 return RequestHandlerWorker.factorial(n - 1) * n
17 }
18
fac9ce96
JB
19 public constructor () {
20 super({
a8706532
JB
21 echo: (workerData?: Data) => {
22 return workerData as unknown as Response
167c661c
JB
23 },
24 factorial: (workerData?: Data) => {
25 return {
8538ea4c 26 body: {
67f3f2d6 27 number: RequestHandlerWorker.factorial(workerData!.body.number!)
8538ea4c 28 }
167c661c 29 } as unknown as Response
fac9ce96
JB
30 }
31 })
32 }
33}
34
a8706532 35export const requestHandlerWorker = new RequestHandlerWorker<
167c661c
JB
36WorkerData<BodyPayload>,
37WorkerResponse<BodyPayload>
a8706532 38>()