1 import { ThreadWorker
} from
'poolifier'
3 import type { BodyPayload
, WorkerData
, WorkerResponse
} from
'./types.js'
5 class RequestHandlerWorker
<
6 Data
extends WorkerData
<BodyPayload
>,
7 Response
extends WorkerResponse
<BodyPayload
>
8 > extends ThreadWorker
<Data
, Response
> {
9 private static readonly factorial
: (n
: number | bigint
) => bigint
= n
=> {
10 if (n
=== 0 || n
=== 1) {
15 for (let i
= 1n
; i
<= n
; i
++) {
22 public constructor () {
24 echo
: (workerData
?: Data
) => {
25 return workerData
as unknown
as Response
27 factorial
: (workerData
?: Data
) => {
30 number: RequestHandlerWorker
.factorial(
31 workerData
!.body
.number!
34 } as unknown
as Response
40 export const requestHandlerWorker
= new RequestHandlerWorker
<
41 WorkerData
<BodyPayload
>,
42 WorkerResponse
<BodyPayload
>