1 import { ThreadWorker
} from
'poolifier'
3 import type { DataPayload
, WorkerData
, WorkerResponse
} from
'./types.js'
5 class RequestHandlerWorker
<
6 Data
extends WorkerData
<DataPayload
>,
7 Response
extends WorkerResponse
<DataPayload
>
8 > extends ThreadWorker
<Data
, Response
> {
9 private static readonly factorial
= (n
: number | bigint
): bigint
=> {
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(workerData
!.data
.number!)
32 } as unknown
as Response
38 export const requestHandlerWorker
= new RequestHandlerWorker
<
39 WorkerData
<DataPayload
>,
40 WorkerResponse
<DataPayload
>