X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=examples%2Ftypescript%2Fhttp-server-pool%2Fexpress%2Fsrc%2Fworker.ts;h=7589aa6b6aaa9b37aa519d24c86bafc96d657b98;hb=aa7cbd39f3a378eea41b23c1f5bd1d17093b8f59;hp=f006ad48217ba2a935498a9468a43a4ab5341bf4;hpb=a87065328fab2b422843a07cd58ab3f5269ed9bc;p=poolifier.git diff --git a/examples/typescript/http-server-pool/express/src/worker.ts b/examples/typescript/http-server-pool/express/src/worker.ts index f006ad48..7589aa6b 100644 --- a/examples/typescript/http-server-pool/express/src/worker.ts +++ b/examples/typescript/http-server-pool/express/src/worker.ts @@ -1,20 +1,36 @@ import { ThreadWorker } from 'poolifier' -import { type WorkerData, type WorkerResponse } from './types.js' +import { + type BodyPayload, + type WorkerData, + type WorkerResponse +} from './types.js' + +const factorial: (n: number) => number = n => { + if (n === 0) { + return 1 + } + return factorial(n - 1) * n +} class RequestHandlerWorker< - Data extends WorkerData, - Response extends WorkerResponse + Data extends WorkerData, + Response extends WorkerResponse > extends ThreadWorker { public constructor () { super({ echo: (workerData?: Data) => { return workerData as unknown as Response + }, + factorial: (workerData?: Data) => { + return { + body: { number: factorial(workerData?.body?.number as number) } + } as unknown as Response } }) } } export const requestHandlerWorker = new RequestHandlerWorker< -WorkerData, -WorkerResponse +WorkerData, +WorkerResponse >()