Skip to content

Commit 2767ffb

Browse files
committed
feat(Server): add helper methods to create request, response and context
1 parent df503ce commit 2767ffb

File tree

1 file changed

+29
-13
lines changed

1 file changed

+29
-13
lines changed

src/server/main.ts

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,32 @@ export class Server {
253253
return this.#router
254254
}
255255

256+
/**
257+
* Creates an instance of the [[Request]] class
258+
*/
259+
createRequest(req: IncomingMessage, res: ServerResponse) {
260+
return new Request(req, res, this.#encryption, this.#config, this.#qsParser)
261+
}
262+
263+
/**
264+
* Creates an instance of the [[Response]] class
265+
*/
266+
createResponse(req: IncomingMessage, res: ServerResponse) {
267+
return new Response(req, res, this.#encryption, this.#config, this.#router, this.#qsParser)
268+
}
269+
270+
/**
271+
* Creates an instance of the [[HttpContext]] class
272+
*/
273+
createHttpContext(request: Request, response: Response, resolver: ContainerResolver<any>) {
274+
return new HttpContext(
275+
request,
276+
response,
277+
this.#logger.child({ request_id: request.id() }),
278+
resolver
279+
)
280+
}
281+
256282
/**
257283
* Handle request
258284
*/
@@ -267,19 +293,9 @@ export class Server {
267293
* Creating essential instances
268294
*/
269295
const resolver = this.#app.container.createResolver()
270-
const request = new Request(req, res, this.#encryption, this.#config, this.#qsParser)
271-
const response = new Response(
272-
req,
273-
res,
274-
this.#encryption,
275-
this.#config,
276-
this.#router,
277-
this.#qsParser
278-
)
279-
const ctx = new HttpContext(
280-
request,
281-
response,
282-
this.#logger.child({ request_id: request.id() }),
296+
const ctx = this.createHttpContext(
297+
this.createRequest(req, res),
298+
this.createResponse(req, res),
283299
resolver
284300
)
285301

0 commit comments

Comments
 (0)