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