@kaito-http/core 2.9.0 → 2.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -7,11 +7,12 @@ export type RouteArgument<Path extends string, Context, QueryOutput, BodyOutput>
|
|
|
7
7
|
params: ExtractRouteParams<Path>;
|
|
8
8
|
};
|
|
9
9
|
export type AnyQueryDefinition = Record<string, z.ZodTypeAny>;
|
|
10
|
-
export type Route<
|
|
10
|
+
export type Route<ContextFrom, ContextTo, Result, Path extends string, Method extends KaitoMethod, Query extends AnyQueryDefinition, BodyOutput, BodyDef extends z.ZodTypeDef, BodyInput> = {
|
|
11
|
+
through: (context: ContextFrom) => Promise<ContextTo>;
|
|
11
12
|
body?: z.ZodType<BodyOutput, BodyDef, BodyInput>;
|
|
12
13
|
query?: Query;
|
|
13
14
|
path: Path;
|
|
14
15
|
method: Method;
|
|
15
|
-
run(args: RouteArgument<Path,
|
|
16
|
+
run(args: RouteArgument<Path, ContextTo, z.infer<z.ZodObject<Query>>, BodyOutput>): Promise<Result>;
|
|
16
17
|
};
|
|
17
|
-
export type AnyRoute<
|
|
18
|
+
export type AnyRoute<FromContext = any, ToContext = any> = Route<FromContext, ToContext, any, any, any, AnyQueryDefinition, any, any, any>;
|
|
@@ -4,7 +4,7 @@ import type { AnyQueryDefinition, AnyRoute, Route } from './route';
|
|
|
4
4
|
import type { ServerConfig } from './server';
|
|
5
5
|
import type { KaitoMethod } from './util';
|
|
6
6
|
type Routes = readonly AnyRoute[];
|
|
7
|
-
type RemapRoutePrefix<R extends AnyRoute, Prefix extends `/${string}`> = R extends Route<infer
|
|
7
|
+
type RemapRoutePrefix<R extends AnyRoute, Prefix extends `/${string}`> = R extends Route<infer ContextFrom, infer ContextTo, infer Result, infer Path, infer Method, infer Query, infer BodyOutput, infer BodyDef, infer BodyInput> ? Route<ContextFrom, ContextTo, Result, `${Prefix}${Path}`, Method, Query, BodyOutput, BodyDef, BodyInput> : never;
|
|
8
8
|
type PrefixRoutesPath<Prefix extends `/${string}`, R extends Routes> = R extends [infer First, ...infer Rest] ? [
|
|
9
9
|
RemapRoutePrefix<Extract<First, AnyRoute>, Prefix>,
|
|
10
10
|
...PrefixRoutesPath<Prefix, Extract<Rest, readonly AnyRoute[]>>
|
|
@@ -25,17 +25,17 @@ export declare class Router<ContextFrom, ContextTo, R extends Routes> {
|
|
|
25
25
|
* @param route The route specification to add to this router
|
|
26
26
|
* @returns A new router with this route added
|
|
27
27
|
*/
|
|
28
|
-
add: <Result, Path extends string, Method extends KaitoMethod, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(method: Method, path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | (Method extends "GET" ? Omit<Route<ContextTo, Result, Path, Method, Query, BodyOutput, BodyDef, BodyInput>, "path" | "body" | "method"> : Omit<Route<ContextTo, Result, Path, Method, Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">)) => Router<ContextFrom, ContextTo, [...R, Route<ContextTo, Result, Path, Method, Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
28
|
+
add: <Result, Path extends string, Method extends KaitoMethod, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(method: Method, path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | (Method extends "GET" ? Omit<Route<ContextFrom, ContextTo, Result, Path, Method, Query, BodyOutput, BodyDef, BodyInput>, "path" | "body" | "method" | "through"> : Omit<Route<ContextFrom, ContextTo, Result, Path, Method, Query, BodyOutput, BodyDef, BodyInput>, "path" | "method" | "through">)) => Router<ContextFrom, ContextTo, [...R, Route<ContextFrom, ContextTo, Result, Path, Method, Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
29
29
|
readonly merge: <PathPrefix extends `/${string}`, OtherRoutes extends Routes>(pathPrefix: PathPrefix, other: Router<ContextTo, ContextTo, OtherRoutes>) => Router<ContextFrom, ContextTo, [...R, ...PrefixRoutesPath<PathPrefix, OtherRoutes>]>;
|
|
30
30
|
freeze: (server: ServerConfig<ContextFrom, any>) => fmw.Instance<fmw.HTTPVersion.V1>;
|
|
31
31
|
private readonly method;
|
|
32
|
-
get: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextTo, Result, Path, "GET", Query, BodyOutput, BodyDef, BodyInput>, "path" | "body" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextTo, Result, Path, "GET", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
33
|
-
post: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextTo, Result, Path, "POST", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextTo, Result, Path, "POST", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
34
|
-
put: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextTo, Result, Path, "PUT", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextTo, Result, Path, "PUT", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
35
|
-
patch: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextTo, Result, Path, "PATCH", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextTo, Result, Path, "PATCH", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
36
|
-
delete: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextTo, Result, Path, "DELETE", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextTo, Result, Path, "DELETE", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
37
|
-
head: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextTo, Result, Path, "HEAD", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextTo, Result, Path, "HEAD", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
38
|
-
options: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextTo, Result, Path, "OPTIONS", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextTo, Result, Path, "OPTIONS", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
32
|
+
get: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextFrom, ContextTo, Result, Path, "GET", Query, BodyOutput, BodyDef, BodyInput>, "path" | "body" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextFrom, ContextTo, Result, Path, "GET", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
33
|
+
post: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextFrom, ContextTo, Result, Path, "POST", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextFrom, ContextTo, Result, Path, "POST", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
34
|
+
put: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextFrom, ContextTo, Result, Path, "PUT", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextFrom, ContextTo, Result, Path, "PUT", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
35
|
+
patch: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextFrom, ContextTo, Result, Path, "PATCH", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextFrom, ContextTo, Result, Path, "PATCH", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
36
|
+
delete: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextFrom, ContextTo, Result, Path, "DELETE", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextFrom, ContextTo, Result, Path, "DELETE", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
37
|
+
head: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextFrom, ContextTo, Result, Path, "HEAD", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextFrom, ContextTo, Result, Path, "HEAD", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
38
|
+
options: <Result, Path extends string, Query extends AnyQueryDefinition = {}, BodyOutput = never, BodyDef extends z.ZodTypeDef = z.ZodTypeDef, BodyInput = BodyOutput>(path: Path, route: ((args: import("./route").RouteArgument<Path, ContextTo, z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }> extends infer T extends object ? { [k in keyof T]: z.objectUtil.addQuestionMarks<{ [k_1 in keyof Query]: Query[k_1]["_output"]; }>[k]; } : never, BodyOutput>) => Promise<Result>) | Omit<Route<ContextFrom, ContextTo, Result, Path, "OPTIONS", Query, BodyOutput, BodyDef, BodyInput>, "path" | "method">) => Router<ContextFrom, ContextTo, [...R, Route<ContextFrom, ContextTo, Result, Path, "OPTIONS", Query, BodyOutput, BodyDef, BodyInput>]>;
|
|
39
39
|
through: <NextContext>(transform: (context: ContextTo) => Promise<NextContext>) => Router<ContextFrom, NextContext, R>;
|
|
40
40
|
}
|
|
41
41
|
export {};
|
|
@@ -187,17 +187,17 @@ class Router {
|
|
|
187
187
|
static handle(
|
|
188
188
|
// Allow for any server to be passed
|
|
189
189
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
190
|
-
server,
|
|
190
|
+
server, route, options) {
|
|
191
191
|
return _asyncToGenerator(function* () {
|
|
192
192
|
var send = getSend(options.res);
|
|
193
193
|
try {
|
|
194
194
|
var _yield$route$body$par, _route$body;
|
|
195
195
|
var rootCtx = yield server.getContext(options.req, options.res);
|
|
196
|
-
var
|
|
196
|
+
var ctx = yield route.through(rootCtx);
|
|
197
197
|
var body = (_yield$route$body$par = yield (_route$body = route.body) === null || _route$body === void 0 ? void 0 : _route$body.parse(yield getBody(options.req))) !== null && _yield$route$body$par !== void 0 ? _yield$route$body$par : undefined;
|
|
198
198
|
var query = route.query ? zod.z.object(route.query).parse(Object.fromEntries(options.req.url.searchParams.entries())) : {};
|
|
199
199
|
var result = yield route.run({
|
|
200
|
-
ctx
|
|
200
|
+
ctx,
|
|
201
201
|
body,
|
|
202
202
|
query,
|
|
203
203
|
params: options.params
|
|
@@ -260,7 +260,8 @@ class Router {
|
|
|
260
260
|
run: route
|
|
261
261
|
}), {}, {
|
|
262
262
|
method,
|
|
263
|
-
path
|
|
263
|
+
path,
|
|
264
|
+
through: this.routerOptions.through
|
|
264
265
|
});
|
|
265
266
|
return new Router([...this.routes, merged], this.routerOptions);
|
|
266
267
|
});
|
|
@@ -298,7 +299,7 @@ class Router {
|
|
|
298
299
|
var _ref = _asyncToGenerator(function* (incomingMessage, serverResponse, params) {
|
|
299
300
|
var req = new KaitoRequest(incomingMessage);
|
|
300
301
|
var res = new KaitoResponse(serverResponse);
|
|
301
|
-
return Router.handle(server,
|
|
302
|
+
return Router.handle(server, route, {
|
|
302
303
|
params,
|
|
303
304
|
req,
|
|
304
305
|
res
|
|
@@ -187,17 +187,17 @@ class Router {
|
|
|
187
187
|
static handle(
|
|
188
188
|
// Allow for any server to be passed
|
|
189
189
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
190
|
-
server,
|
|
190
|
+
server, route, options) {
|
|
191
191
|
return _asyncToGenerator(function* () {
|
|
192
192
|
var send = getSend(options.res);
|
|
193
193
|
try {
|
|
194
194
|
var _yield$route$body$par, _route$body;
|
|
195
195
|
var rootCtx = yield server.getContext(options.req, options.res);
|
|
196
|
-
var
|
|
196
|
+
var ctx = yield route.through(rootCtx);
|
|
197
197
|
var body = (_yield$route$body$par = yield (_route$body = route.body) === null || _route$body === void 0 ? void 0 : _route$body.parse(yield getBody(options.req))) !== null && _yield$route$body$par !== void 0 ? _yield$route$body$par : undefined;
|
|
198
198
|
var query = route.query ? zod.z.object(route.query).parse(Object.fromEntries(options.req.url.searchParams.entries())) : {};
|
|
199
199
|
var result = yield route.run({
|
|
200
|
-
ctx
|
|
200
|
+
ctx,
|
|
201
201
|
body,
|
|
202
202
|
query,
|
|
203
203
|
params: options.params
|
|
@@ -260,7 +260,8 @@ class Router {
|
|
|
260
260
|
run: route
|
|
261
261
|
}), {}, {
|
|
262
262
|
method,
|
|
263
|
-
path
|
|
263
|
+
path,
|
|
264
|
+
through: this.routerOptions.through
|
|
264
265
|
});
|
|
265
266
|
return new Router([...this.routes, merged], this.routerOptions);
|
|
266
267
|
});
|
|
@@ -298,7 +299,7 @@ class Router {
|
|
|
298
299
|
var _ref = _asyncToGenerator(function* (incomingMessage, serverResponse, params) {
|
|
299
300
|
var req = new KaitoRequest(incomingMessage);
|
|
300
301
|
var res = new KaitoResponse(serverResponse);
|
|
301
|
-
return Router.handle(server,
|
|
302
|
+
return Router.handle(server, route, {
|
|
302
303
|
params,
|
|
303
304
|
req,
|
|
304
305
|
res
|
|
@@ -159,17 +159,17 @@ class Router {
|
|
|
159
159
|
static handle(
|
|
160
160
|
// Allow for any server to be passed
|
|
161
161
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
162
|
-
server,
|
|
162
|
+
server, route, options) {
|
|
163
163
|
return _asyncToGenerator(function* () {
|
|
164
164
|
var send = getSend(options.res);
|
|
165
165
|
try {
|
|
166
166
|
var _yield$route$body$par, _route$body;
|
|
167
167
|
var rootCtx = yield server.getContext(options.req, options.res);
|
|
168
|
-
var
|
|
168
|
+
var ctx = yield route.through(rootCtx);
|
|
169
169
|
var body = (_yield$route$body$par = yield (_route$body = route.body) === null || _route$body === void 0 ? void 0 : _route$body.parse(yield getBody(options.req))) !== null && _yield$route$body$par !== void 0 ? _yield$route$body$par : undefined;
|
|
170
170
|
var query = route.query ? z.object(route.query).parse(Object.fromEntries(options.req.url.searchParams.entries())) : {};
|
|
171
171
|
var result = yield route.run({
|
|
172
|
-
ctx
|
|
172
|
+
ctx,
|
|
173
173
|
body,
|
|
174
174
|
query,
|
|
175
175
|
params: options.params
|
|
@@ -232,7 +232,8 @@ class Router {
|
|
|
232
232
|
run: route
|
|
233
233
|
}), {}, {
|
|
234
234
|
method,
|
|
235
|
-
path
|
|
235
|
+
path,
|
|
236
|
+
through: this.routerOptions.through
|
|
236
237
|
});
|
|
237
238
|
return new Router([...this.routes, merged], this.routerOptions);
|
|
238
239
|
});
|
|
@@ -270,7 +271,7 @@ class Router {
|
|
|
270
271
|
var _ref = _asyncToGenerator(function* (incomingMessage, serverResponse, params) {
|
|
271
272
|
var req = new KaitoRequest(incomingMessage);
|
|
272
273
|
var res = new KaitoResponse(serverResponse);
|
|
273
|
-
return Router.handle(server,
|
|
274
|
+
return Router.handle(server, route, {
|
|
274
275
|
params,
|
|
275
276
|
req,
|
|
276
277
|
res
|