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:
parent
40bf8e757b
commit
db5873319f
@ -82,7 +82,6 @@ describe("router", () => {
|
||||
payload: "some-payload",
|
||||
query: expect.any(URLSearchParams),
|
||||
raw: { req: requestStub },
|
||||
response: responseStub,
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user