1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Make mechanism of creating HTTP response an implementation detail

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
Janne Savolainen 2022-02-14 14:14:08 +02:00
parent 40bf8e757b
commit db5873319f
No known key found for this signature in database
GPG Key ID: 8C6CFB2FFFE8F68A
2 changed files with 5 additions and 9 deletions

View File

@ -82,7 +82,6 @@ describe("router", () => {
payload: "some-payload",
query: expect.any(URLSearchParams),
raw: { req: requestStub },
response: responseStub,
});
});

View File

@ -15,7 +15,6 @@ import "../common/vars";
export interface RouterRequestOpts {
req: http.IncomingMessage;
res: http.ServerResponse;
cluster: Cluster;
params: RouteParams;
url: URL;
@ -36,7 +35,6 @@ export interface LensApiRequest<P = any> {
payload: P;
params: RouteParams;
cluster: Cluster;
response: http.ServerResponse;
query: URLSearchParams;
raw: {
req: http.IncomingMessage;
@ -66,9 +64,9 @@ export class Router {
const routeFound = !matchingRoute.isBoom;
if (routeFound) {
const request = await this.getRequest({ req, res, cluster, url, params: matchingRoute.params });
const request = await this.getRequest({ req, cluster, url, params: matchingRoute.params });
await matchingRoute.route(request);
await matchingRoute.route(request, res);
return true;
}
@ -77,7 +75,7 @@ export class Router {
}
protected async getRequest(opts: RouterRequestOpts): Promise<LensApiRequest> {
const { req, res, url, cluster, params } = opts;
const { req, url, cluster, params } = opts;
const { payload } = await this.dependencies.parseRequest(req, null, {
parse: true,
@ -90,7 +88,6 @@ export class Router {
raw: {
req, res,
},
response: res,
query: url.searchParams,
payload,
params,
@ -121,10 +118,10 @@ export interface Route<TResponse> {
handler: RouteHandler<TResponse>;
}
const handleRoute = (route: Route<any>) => async (request: LensApiRequest) => {
const handleRoute = (route: Route<any>) => async (request: LensApiRequest, response: http.ServerResponse) => {
let result: LensApiResult<any> | void;
const writeServerResponse = writeServerResponseFor(request.response);
const writeServerResponse = writeServerResponseFor(response);
try {
result = await route.handler(request);