import type { Server } from 'node:http'
import type { AddressInfo } from 'node:net'
-import { ClusterWorker } from 'poolifier'
+
import express, { type Express, type Request, type Response } from 'express'
+import { ClusterWorker } from 'poolifier'
+
import type { WorkerData, WorkerResponse } from './types.js'
class ExpressWorker extends ClusterWorker<WorkerData, WorkerResponse> {
private static readonly startExpress = (
workerData?: WorkerData
): WorkerResponse => {
- const { port } = workerData as WorkerData
+ const { port } = workerData!
const application: Express = express()
ExpressWorker.server = application.listen(port, () => {
console.info(
- // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
`⚡️[express server]: Express server is started in cluster worker at http://localhost:${port}/`
)
})
return {
status: true,
- port: (ExpressWorker.server.address() as AddressInfo)?.port ?? port
+ port: (ExpressWorker.server.address() as AddressInfo).port
}
}