@rudderjs/router 1.2.1 → 1.3.1
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.
- package/dist/index.d.ts +71 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +69 -8
- package/dist/index.js.map +1 -1
- package/dist/query-validator.d.ts +17 -0
- package/dist/query-validator.d.ts.map +1 -0
- package/dist/query-validator.js +34 -0
- package/dist/query-validator.js.map +1 -0
- package/dist/typed-routes.d.ts +83 -0
- package/dist/typed-routes.d.ts.map +1 -0
- package/dist/typed-routes.js +2 -0
- package/dist/typed-routes.js.map +1 -0
- package/dist/typed-routes.test-d.d.ts +2 -0
- package/dist/typed-routes.test-d.d.ts.map +1 -0
- package/dist/typed-routes.test-d.js +77 -0
- package/dist/typed-routes.test-d.js.map +1 -0
- package/package.json +4 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
import type { ServerAdapter, RouteDefinition, RouteHandler, MiddlewareHandler, HttpMethod, RouteGroup } from '@rudderjs/contracts';
|
|
3
|
+
import type { ZodType, z } from 'zod';
|
|
4
|
+
import type { TypedHandler } from './typed-routes.js';
|
|
5
|
+
export type { ExtractParams, TypedRequest, TypedHandler } from './typed-routes.js';
|
|
6
|
+
/**
|
|
7
|
+
* Per-route options accepted in the 3-arg form of `Router.get/post/etc`.
|
|
8
|
+
*
|
|
9
|
+
* The 3-arg form exists so the handler closure can be typed against the
|
|
10
|
+
* Zod-inferred query shape *at write time* — the bare 2-arg form types
|
|
11
|
+
* `req.query` as `Record<string, string>`, and chaining `.query(schema)`
|
|
12
|
+
* after that can't go back and re-type the closure.
|
|
13
|
+
*/
|
|
14
|
+
export interface RouteOptions<S extends ZodType = ZodType> {
|
|
15
|
+
/** Zod schema to validate `req.query` against. Parsed result replaces `req.query`. */
|
|
16
|
+
query?: S;
|
|
17
|
+
/** Per-route middleware (prepended before the handler). */
|
|
18
|
+
middleware?: MiddlewareHandler[];
|
|
19
|
+
}
|
|
3
20
|
/**
|
|
4
21
|
* Tag every route registered while `fn` runs with `group` ('web' | 'api').
|
|
5
22
|
*
|
|
@@ -59,9 +76,12 @@ export declare const ROUTE_PATTERN_ULID = "[0-7][0-9A-HJKMNP-TV-Z]{25}";
|
|
|
59
76
|
* router.get('/users/:id', handler).name('users.show').whereNumber('id')
|
|
60
77
|
* route('users.show', { id: 1 }) // → '/users/1'
|
|
61
78
|
*/
|
|
62
|
-
export declare class RouteBuilder
|
|
79
|
+
export declare class RouteBuilder<P extends string = string, // path literal — preserved for .query() / future .body() chains
|
|
80
|
+
Q = Record<string, string>> {
|
|
63
81
|
private readonly definition;
|
|
64
82
|
private readonly _router;
|
|
83
|
+
readonly _path: P;
|
|
84
|
+
readonly _query: Q;
|
|
65
85
|
constructor(definition: RouteDefinition, _router: Router);
|
|
66
86
|
/** Assign a name to this route for use with `route()` and `Url.signedRoute()`. */
|
|
67
87
|
name(n: string): this;
|
|
@@ -118,6 +138,27 @@ export declare class RouteBuilder {
|
|
|
118
138
|
* .missing((_req, err) => Response.json({ error: err.message }, { status: 404 }))
|
|
119
139
|
*/
|
|
120
140
|
missing(fn: NonNullable<RouteDefinition['missing']>): this;
|
|
141
|
+
/**
|
|
142
|
+
* Install a Zod validator on `req.query` for this route. The parsed result
|
|
143
|
+
* replaces `req.query` at request time, so `z.coerce.number()` end-to-end
|
|
144
|
+
* works.
|
|
145
|
+
*
|
|
146
|
+
* **Note on typing:** the handler was already passed (and typed) when this
|
|
147
|
+
* route was registered. Chaining `.query(schema)` AFTER cannot re-type a
|
|
148
|
+
* closure that's already been bound. The returned `RouteBuilder<P, z.infer<S>>`
|
|
149
|
+
* carries the inferred query for downstream chain methods, but the
|
|
150
|
+
* already-registered handler still sees the original typing of its closure.
|
|
151
|
+
*
|
|
152
|
+
* For type-safe query at the handler closure, use the opts-object form:
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* // Type-safe (handler closure sees `req.query.page: number`)
|
|
156
|
+
* Route.get('/users', { query: z.object({ page: z.coerce.number() }) }, (req) => req.query.page)
|
|
157
|
+
*
|
|
158
|
+
* // Runtime-only (validation runs, but `req.query.page` is still typed string)
|
|
159
|
+
* Route.get('/users', (req) => req.query.page).query(z.object({ page: z.coerce.number() }))
|
|
160
|
+
*/
|
|
161
|
+
query<S extends ZodType>(schema: S): RouteBuilder<P, z.infer<S>>;
|
|
121
162
|
}
|
|
122
163
|
/**
|
|
123
164
|
* Options accepted by `router.group(opts, fn)`. Each route registered inside
|
|
@@ -238,12 +279,35 @@ export declare class Router {
|
|
|
238
279
|
private _buildBindingMiddleware;
|
|
239
280
|
/** Manually register a route. Returns `this` for bulk registration. */
|
|
240
281
|
add(method: HttpMethod, path: string, handler: RouteHandler, middleware?: MiddlewareHandler[]): this;
|
|
241
|
-
get(path:
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
282
|
+
get<P extends string>(path: P, handler: TypedHandler<P>, middleware?: MiddlewareHandler[]): RouteBuilder<P>;
|
|
283
|
+
get<P extends string, S extends ZodType>(path: P, opts: RouteOptions<S> & {
|
|
284
|
+
query: S;
|
|
285
|
+
}, handler: TypedHandler<P, z.infer<S>>): RouteBuilder<P, z.infer<S>>;
|
|
286
|
+
post<P extends string>(path: P, handler: TypedHandler<P>, middleware?: MiddlewareHandler[]): RouteBuilder<P>;
|
|
287
|
+
post<P extends string, S extends ZodType>(path: P, opts: RouteOptions<S> & {
|
|
288
|
+
query: S;
|
|
289
|
+
}, handler: TypedHandler<P, z.infer<S>>): RouteBuilder<P, z.infer<S>>;
|
|
290
|
+
put<P extends string>(path: P, handler: TypedHandler<P>, middleware?: MiddlewareHandler[]): RouteBuilder<P>;
|
|
291
|
+
put<P extends string, S extends ZodType>(path: P, opts: RouteOptions<S> & {
|
|
292
|
+
query: S;
|
|
293
|
+
}, handler: TypedHandler<P, z.infer<S>>): RouteBuilder<P, z.infer<S>>;
|
|
294
|
+
patch<P extends string>(path: P, handler: TypedHandler<P>, middleware?: MiddlewareHandler[]): RouteBuilder<P>;
|
|
295
|
+
patch<P extends string, S extends ZodType>(path: P, opts: RouteOptions<S> & {
|
|
296
|
+
query: S;
|
|
297
|
+
}, handler: TypedHandler<P, z.infer<S>>): RouteBuilder<P, z.infer<S>>;
|
|
298
|
+
delete<P extends string>(path: P, handler: TypedHandler<P>, middleware?: MiddlewareHandler[]): RouteBuilder<P>;
|
|
299
|
+
delete<P extends string, S extends ZodType>(path: P, opts: RouteOptions<S> & {
|
|
300
|
+
query: S;
|
|
301
|
+
}, handler: TypedHandler<P, z.infer<S>>): RouteBuilder<P, z.infer<S>>;
|
|
302
|
+
all<P extends string>(path: P, handler: TypedHandler<P>, middleware?: MiddlewareHandler[]): RouteBuilder<P>;
|
|
303
|
+
all<P extends string, S extends ZodType>(path: P, opts: RouteOptions<S> & {
|
|
304
|
+
query: S;
|
|
305
|
+
}, handler: TypedHandler<P, z.infer<S>>): RouteBuilder<P, z.infer<S>>;
|
|
306
|
+
/**
|
|
307
|
+
* Internal dispatcher for the two-overload shorthand methods. Decides
|
|
308
|
+
* between bare and opts form by whether the second arg is callable.
|
|
309
|
+
*/
|
|
310
|
+
private _verb;
|
|
247
311
|
/**
|
|
248
312
|
* Register a catch-all fallback route. Runs when no other route matches.
|
|
249
313
|
* Register it last — Hono evaluates routes in registration order.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,UAAU,EACX,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,UAAU,EACX,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAElF;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;IACvD,sFAAsF;IACtF,KAAK,CAAC,EAAO,CAAC,CAAA;IACd,2DAA2D;IAC3D,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAA;CACjC;AAkBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAc3F;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,UAAU,GAAG,SAAS,CAErD;AAoBD,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,MAAM,SAAK,GAAG,cAAc,CAItD;AAED,8DAA8D;AAC9D,wBAAgB,UAAU,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,cAAc,GAAG,eAAe,CAmB5F;AAiBD,eAAO,MAAM,GAAG,qBAbO,eAa4B,CAAA;AACnD,eAAO,MAAM,IAAI,qBAdM,eAc6B,CAAA;AACpD,eAAO,MAAM,GAAG,qBAfO,eAe4B,CAAA;AACnD,eAAO,MAAM,KAAK,qBAhBK,eAgB8B,CAAA;AACrD,eAAO,MAAM,MAAM,qBAjBI,eAiB+B,CAAA;AACtD,eAAO,MAAM,OAAO,qBAlBG,eAkBgC,CAAA;AAoCvD;;;;GAIG;AACH,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQvD;AAOD,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB,WAAa,CAAA;AAC9C,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,cAAiB,CAAA;AACjD,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,iBAAiB,CAAA;AACpD,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,gFAAoF,CAAA;AACnH,kDAAkD;AAClD,eAAO,MAAM,kBAAkB,gCAAoC,CAAA;AAInE;;;;;;;GAOG;AACH,qBAAa,YAAY,CACvB,CAAC,SAAS,MAAM,GAAG,MAAM,EAAG,gEAAgE;AAC5F,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,SAAiB,KAAK,EAAG,CAAC,CAAA;IAC1B,SAAiB,MAAM,EAAE,CAAC,CAAA;gBAGP,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,MAAM;IAGlC,kFAAkF;IAClF,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAOrB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAsClD,gDAAgD;IAChD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAEhC,uDAAuD;IACvD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAE/B,iEAAiE;IACjE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAEtC,mDAAmD;IACnD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAE9B,qDAAqD;IACrD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAE9B;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAQlE;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK9B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI;IAK1D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAKjE;AAID;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,MAAM,CAAC,EAAM,MAAM,CAAA;IACnB,yEAAyE;IACzE,MAAM,CAAC,EAAM,MAAM,CAAA;IACnB,iFAAiF;IACjF,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAA;CACjC;AAID,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAEzB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAIjF,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,QAAQ,CAAkC;IAClD;;;;OAIG;IACH,OAAO,CAAC,WAAW,CAA0B;IAE7C,yCAAyC;IACzC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI;IAIvD,uEAAuE;IACvE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI/C;;;;;;;;;OASG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,mCAAmC;IACnC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMnC,6EAA6E;IAC7E,KAAK,IAAI,IAAI;IASb;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAMpD;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAuBxB,0DAA0D;IAC1D,GAAG,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAKxC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAE,mBAAwB,GAAG,IAAI;IAKpF,0DAA0D;IAC1D,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAM7C;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAI/B,uEAAuE;IACvE,GAAG,CACD,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,UAAU,GAAE,iBAAiB,EAAO,GACnC,IAAI;IAwBP,GAAG,CAAI,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IAC9G,GAAG,CAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAG7J,IAAI,CAAG,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IAC9G,IAAI,CAAG,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAG7J,GAAG,CAAI,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IAC9G,GAAG,CAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAG7J,KAAK,CAAE,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IAC9G,KAAK,CAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAG7J,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IAC9G,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAG7J,GAAG,CAAI,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IAC9G,GAAG,CAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAG7J;;;OAGG;IACH,OAAO,CAAC,KAAK;IAmBb;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,GAAE,iBAAiB,EAAO,GAAG,YAAY;IAInF,OAAO,CAAC,GAAG;IAeX,mEAAmE;IACnE,kBAAkB,CAAC,eAAe,EAAE,UAAU,MAAM,GAAG,IAAI;IAiC3D,8CAA8C;IAC9C,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAelC,wDAAwD;IACxD,IAAI,IAAI,eAAe,EAAE;IAMzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,oBAAoB;IAIhG;;;;;;;OAOG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,oBAAoB;IAOnG;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,qBAAqB;IAKlG,+EAA+E;IAC/E,iBAAiB,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,MAAM,EACtB,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,IAAI,EAAE,eAAe,GACpB,oBAAoB;CA+BxB;AAID,OAAO,EAKL,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAiB3E,eAAO,MAAM,MAAM,EAAE,MAIjB,CAAA;AAEJ,wDAAwD;AACxD,eAAO,MAAM,KAAK,QAAS,CAAA;AAI3B;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,GAAG,MAAM,CA6BxF;AAID,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
+
import { buildQueryValidator } from './query-validator.js';
|
|
2
3
|
// ─── Route Group Context ──────────────────────────────────
|
|
3
4
|
//
|
|
4
5
|
// `runWithGroup(group, fn)` sets the current group for the duration of `fn`.
|
|
@@ -304,6 +305,31 @@ export class RouteBuilder {
|
|
|
304
305
|
this.definition.missing = fn;
|
|
305
306
|
return this;
|
|
306
307
|
}
|
|
308
|
+
/**
|
|
309
|
+
* Install a Zod validator on `req.query` for this route. The parsed result
|
|
310
|
+
* replaces `req.query` at request time, so `z.coerce.number()` end-to-end
|
|
311
|
+
* works.
|
|
312
|
+
*
|
|
313
|
+
* **Note on typing:** the handler was already passed (and typed) when this
|
|
314
|
+
* route was registered. Chaining `.query(schema)` AFTER cannot re-type a
|
|
315
|
+
* closure that's already been bound. The returned `RouteBuilder<P, z.infer<S>>`
|
|
316
|
+
* carries the inferred query for downstream chain methods, but the
|
|
317
|
+
* already-registered handler still sees the original typing of its closure.
|
|
318
|
+
*
|
|
319
|
+
* For type-safe query at the handler closure, use the opts-object form:
|
|
320
|
+
*
|
|
321
|
+
* @example
|
|
322
|
+
* // Type-safe (handler closure sees `req.query.page: number`)
|
|
323
|
+
* Route.get('/users', { query: z.object({ page: z.coerce.number() }) }, (req) => req.query.page)
|
|
324
|
+
*
|
|
325
|
+
* // Runtime-only (validation runs, but `req.query.page` is still typed string)
|
|
326
|
+
* Route.get('/users', (req) => req.query.page).query(z.object({ page: z.coerce.number() }))
|
|
327
|
+
*/
|
|
328
|
+
query(schema) {
|
|
329
|
+
// Prepend so the validator runs before any other per-route middleware.
|
|
330
|
+
this.definition.middleware.unshift(buildQueryValidator(schema));
|
|
331
|
+
return this;
|
|
332
|
+
}
|
|
307
333
|
}
|
|
308
334
|
// ─── Route Model Binding ───────────────────────────────────
|
|
309
335
|
import { buildBindingMiddleware, } from './binding-middleware.js';
|
|
@@ -486,13 +512,31 @@ export class Router {
|
|
|
486
512
|
this.routes.push(def);
|
|
487
513
|
return this;
|
|
488
514
|
}
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
515
|
+
get(path, a, b) { return this._verb('GET', path, a, b); }
|
|
516
|
+
post(path, a, b) { return this._verb('POST', path, a, b); }
|
|
517
|
+
put(path, a, b) { return this._verb('PUT', path, a, b); }
|
|
518
|
+
patch(path, a, b) { return this._verb('PATCH', path, a, b); }
|
|
519
|
+
delete(path, a, b) { return this._verb('DELETE', path, a, b); }
|
|
520
|
+
all(path, a, b) { return this._verb('ALL', path, a, b); }
|
|
521
|
+
/**
|
|
522
|
+
* Internal dispatcher for the two-overload shorthand methods. Decides
|
|
523
|
+
* between bare and opts form by whether the second arg is callable.
|
|
524
|
+
*/
|
|
525
|
+
_verb(method, path, a, b) {
|
|
526
|
+
if (typeof a === 'function') {
|
|
527
|
+
// Bare form: (path, handler, middleware?)
|
|
528
|
+
return this._rb(method, path, a, b);
|
|
529
|
+
}
|
|
530
|
+
// Opts form: (path, { query, middleware }, handler)
|
|
531
|
+
const opts = a;
|
|
532
|
+
const handler = b;
|
|
533
|
+
const mw = [];
|
|
534
|
+
if (opts.query)
|
|
535
|
+
mw.push(buildQueryValidator(opts.query));
|
|
536
|
+
if (opts.middleware)
|
|
537
|
+
mw.push(...opts.middleware);
|
|
538
|
+
return this._rb(method, path, handler, mw);
|
|
539
|
+
}
|
|
496
540
|
/**
|
|
497
541
|
* Register a catch-all fallback route. Runs when no other route matches.
|
|
498
542
|
* Register it last — Hono evaluates routes in registration order.
|
|
@@ -659,7 +703,24 @@ export class Router {
|
|
|
659
703
|
import { RESOURCE_VERBS, SINGLETON_VERBS, filterVerbs, singularize, ResourceRegistration, SingletonRegistration, } from './resource.js';
|
|
660
704
|
export { ResourceRegistration, SingletonRegistration } from './resource.js';
|
|
661
705
|
// ─── Global router instance ────────────────────────────────
|
|
662
|
-
|
|
706
|
+
//
|
|
707
|
+
// The singleton lives on `globalThis` (not at module scope) so consumers that
|
|
708
|
+
// reach the router through two different module instances — typically a
|
|
709
|
+
// bundled app (entry.mjs) plus a node_modules copy loaded by
|
|
710
|
+
// `resolveOptionalPeer('@rudderjs/router')` — see the same routes/middleware
|
|
711
|
+
// arrays. A module-level `new Router()` splits into independent instances:
|
|
712
|
+
// e.g. `@rudderjs/mcp`'s `McpProvider.boot()` registers `/mcp/echo` on the
|
|
713
|
+
// node_modules copy, while server-hono dispatches against the bundled copy,
|
|
714
|
+
// so the route silently 404s. Matches the pattern used by
|
|
715
|
+
// `groupMiddlewareStore` in `@rudderjs/core` and the static-state registries
|
|
716
|
+
// audited in PRs #498/#500–#506.
|
|
717
|
+
const ROUTER_KEY = '__rudderjs_router__';
|
|
718
|
+
const _routerGlobal = globalThis;
|
|
719
|
+
export const router = _routerGlobal[ROUTER_KEY] ?? (() => {
|
|
720
|
+
const r = new Router();
|
|
721
|
+
_routerGlobal[ROUTER_KEY] = r;
|
|
722
|
+
return r;
|
|
723
|
+
})();
|
|
663
724
|
/** Alias for router — Laravel-style capitalised name */
|
|
664
725
|
export const Route = router;
|
|
665
726
|
// ─── route() helper ────────────────────────────────────────
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ZodType } from 'zod';
|
|
2
|
+
import { type MiddlewareHandler } from '@rudderjs/contracts';
|
|
3
|
+
/**
|
|
4
|
+
* Build a middleware that validates `req.query` against a Zod schema.
|
|
5
|
+
*
|
|
6
|
+
* - On success, `req.query` is **replaced in place** with the parsed result.
|
|
7
|
+
* This is what makes `z.coerce.number()` work end-to-end: the handler sees
|
|
8
|
+
* `req.query.page` as a `number`, not the original string.
|
|
9
|
+
* - On failure, throws `ValidationError` (rendered as HTTP 422 by core's
|
|
10
|
+
* exception handler). The error map mirrors FormRequest's shape:
|
|
11
|
+
* `{ [path]: string[] }`, with top-level issues under `'root'`.
|
|
12
|
+
*
|
|
13
|
+
* Used by `RouteBuilder.query(schema)` and the `{ query: schema }` opts form
|
|
14
|
+
* on `Router.get/post/etc`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildQueryValidator(schema: ZodType): MiddlewareHandler;
|
|
17
|
+
//# sourceMappingURL=query-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-validator.d.ts","sourceRoot":"","sources":["../src/query-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,KAAK,CAAA;AACvC,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE7E;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,iBAAiB,CAStE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ValidationError } from '@rudderjs/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* Build a middleware that validates `req.query` against a Zod schema.
|
|
4
|
+
*
|
|
5
|
+
* - On success, `req.query` is **replaced in place** with the parsed result.
|
|
6
|
+
* This is what makes `z.coerce.number()` work end-to-end: the handler sees
|
|
7
|
+
* `req.query.page` as a `number`, not the original string.
|
|
8
|
+
* - On failure, throws `ValidationError` (rendered as HTTP 422 by core's
|
|
9
|
+
* exception handler). The error map mirrors FormRequest's shape:
|
|
10
|
+
* `{ [path]: string[] }`, with top-level issues under `'root'`.
|
|
11
|
+
*
|
|
12
|
+
* Used by `RouteBuilder.query(schema)` and the `{ query: schema }` opts form
|
|
13
|
+
* on `Router.get/post/etc`.
|
|
14
|
+
*/
|
|
15
|
+
export function buildQueryValidator(schema) {
|
|
16
|
+
return async (req, _res, next) => {
|
|
17
|
+
const result = schema.safeParse(req.query);
|
|
18
|
+
if (!result.success) {
|
|
19
|
+
throw new ValidationError(zodIssuesToErrors(result.error));
|
|
20
|
+
}
|
|
21
|
+
;
|
|
22
|
+
req.query = result.data;
|
|
23
|
+
await next();
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function zodIssuesToErrors(err) {
|
|
27
|
+
const errors = {};
|
|
28
|
+
for (const issue of err.issues) {
|
|
29
|
+
const key = issue.path.join('.') || 'root';
|
|
30
|
+
errors[key] = [...(errors[key] ?? []), issue.message];
|
|
31
|
+
}
|
|
32
|
+
return errors;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=query-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-validator.js","sourceRoot":"","sources":["../src/query-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA0B,MAAM,qBAAqB,CAAA;AAE7E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAe;IACjD,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5D,CAAC;QACD,CAAC;QAAC,GAA0B,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAA;QAChD,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAa;IACtC,MAAM,MAAM,GAA6B,EAAE,CAAA;IAC3C,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAA;QAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { AppRequest, AppResponse } from '@rudderjs/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* Parse a single `:name` (or `:name?`, or `:name{regex}`, or `:name?{regex}`)
|
|
4
|
+
* out of the head of a string. Returns `{ name, optional, rest }` or `never`
|
|
5
|
+
* if no name letter follows the `:`.
|
|
6
|
+
*/
|
|
7
|
+
type ParseParam<S extends string> = S extends `${infer Head}${infer Tail}` ? Head extends Letter ? AccumName<Tail, Head> : never : never;
|
|
8
|
+
type Letter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '_';
|
|
9
|
+
type AccumName<S extends string, Acc extends string> = S extends `${infer Head}${infer Tail}` ? Head extends Letter ? AccumName<Tail, `${Acc}${Head}`> : FinishName<S, Acc> : FinishName<S, Acc>;
|
|
10
|
+
type FinishName<S extends string, Name extends string> = S extends `?${infer Rest}` ? {
|
|
11
|
+
name: Name;
|
|
12
|
+
optional: true;
|
|
13
|
+
rest: StripBraceBlock<Rest>;
|
|
14
|
+
} : {
|
|
15
|
+
name: Name;
|
|
16
|
+
optional: false;
|
|
17
|
+
rest: StripBraceBlock<S>;
|
|
18
|
+
};
|
|
19
|
+
/** Skip a `{...}` regex constraint block (single level; mirrors router's parser). */
|
|
20
|
+
type StripBraceBlock<S extends string> = S extends `{${infer _Body}}${infer Rest}` ? Rest : S;
|
|
21
|
+
/**
|
|
22
|
+
* Walk the path and accumulate every `:param` into a union of
|
|
23
|
+
* `{ name; optional }` records.
|
|
24
|
+
*/
|
|
25
|
+
type ScanParams<P extends string, Acc = never> = P extends `${infer _Head}:${infer Rest}` ? ParseParam<Rest> extends {
|
|
26
|
+
name: infer N;
|
|
27
|
+
optional: infer O;
|
|
28
|
+
rest: infer R;
|
|
29
|
+
} ? N extends string ? R extends string ? ScanParams<R, Acc | {
|
|
30
|
+
name: N;
|
|
31
|
+
optional: O;
|
|
32
|
+
}> : Acc : Acc : ScanParams<Rest, Acc> : Acc;
|
|
33
|
+
/**
|
|
34
|
+
* Map the param union to an object. Optional params become optional keys.
|
|
35
|
+
*
|
|
36
|
+
* Tricks used here:
|
|
37
|
+
* - `as` re-keys the mapped type so the property name is the captured `name`.
|
|
38
|
+
* - Splitting required vs optional via intersection lets us mark optional
|
|
39
|
+
* keys with `?:` while keeping required ones as `:`. TS doesn't allow
|
|
40
|
+
* conditional optionality inside a single mapped type.
|
|
41
|
+
*/
|
|
42
|
+
type ParamUnion<P extends string> = ScanParams<P>;
|
|
43
|
+
type RequiredParams<P extends string> = {
|
|
44
|
+
[U in Extract<ParamUnion<P>, {
|
|
45
|
+
optional: false;
|
|
46
|
+
}> as U['name']]: string;
|
|
47
|
+
};
|
|
48
|
+
type OptionalParams<P extends string> = {
|
|
49
|
+
[U in Extract<ParamUnion<P>, {
|
|
50
|
+
optional: true;
|
|
51
|
+
}> as U['name']]?: string;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Object shape of `req.params` for a literal route path.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* type T1 = ExtractParams<'/users/:id'> // { id: string }
|
|
58
|
+
* type T2 = ExtractParams<'/users/:id/posts/:postId'> // { id: string; postId: string }
|
|
59
|
+
* type T3 = ExtractParams<'/files/:name?'> // { name?: string }
|
|
60
|
+
* type T4 = ExtractParams<'/health'> // {}
|
|
61
|
+
*/
|
|
62
|
+
export type ExtractParams<P extends string> = Prettify<RequiredParams<P> & OptionalParams<P>>;
|
|
63
|
+
/** Flatten an intersection into a single object literal for nicer hovers. */
|
|
64
|
+
type Prettify<T> = {
|
|
65
|
+
[K in keyof T]: T[K];
|
|
66
|
+
} & {};
|
|
67
|
+
/**
|
|
68
|
+
* `AppRequest` with `params` and `query` overridden to the inferred shapes.
|
|
69
|
+
* All other fields (including module-augmented `user`, `session`, `token`)
|
|
70
|
+
* are inherited via `Omit + extend`.
|
|
71
|
+
*/
|
|
72
|
+
export interface TypedRequest<P extends Record<string, string | undefined> = Record<string, string>, Q = Record<string, string>> extends Omit<AppRequest, 'params' | 'query'> {
|
|
73
|
+
params: P;
|
|
74
|
+
query: Q;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Handler whose `req.params` is derived from the literal path `P`, and whose
|
|
78
|
+
* `req.query` is `Q` (defaulted to `Record<string, string>`; replaced via
|
|
79
|
+
* `{ query: schema }` opts in the route declaration).
|
|
80
|
+
*/
|
|
81
|
+
export type TypedHandler<P extends string, Q = Record<string, string>> = (req: TypedRequest<ExtractParams<P>, Q>, res: AppResponse) => unknown | Promise<unknown>;
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=typed-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-routes.d.ts","sourceRoot":"","sources":["../src/typed-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-routes.js","sourceRoot":"","sources":["../src/typed-routes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-routes.test-d.d.ts","sourceRoot":"","sources":["../src/typed-routes.test-d.ts"],"names":[],"mappings":"AAgHA,OAAO,EAAE,CAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type-only test for `ExtractParams<P>` + typed handler signatures.
|
|
3
|
+
*
|
|
4
|
+
* Compiled by `pnpm typecheck` (and the test build); failing type assertions
|
|
5
|
+
* surface as tsc errors. No runtime tests live here — Node's `--test` glob
|
|
6
|
+
* excludes `*.test-d.js`.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
import { Router } from './index.js';
|
|
10
|
+
const router = new Router();
|
|
11
|
+
const check = () => undefined;
|
|
12
|
+
check();
|
|
13
|
+
check();
|
|
14
|
+
check();
|
|
15
|
+
check();
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
17
|
+
check();
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
19
|
+
check();
|
|
20
|
+
// ─── Handler typing (positive) ─────────────────────────────
|
|
21
|
+
router.get('/users/:id', (req) => {
|
|
22
|
+
const id = req.params.id;
|
|
23
|
+
return id;
|
|
24
|
+
});
|
|
25
|
+
router.post('/users/:id/posts/:postId', (req) => {
|
|
26
|
+
const id = req.params.id;
|
|
27
|
+
const postId = req.params.postId;
|
|
28
|
+
return { id, postId };
|
|
29
|
+
});
|
|
30
|
+
router.get('/files/:name?', (req) => {
|
|
31
|
+
const name = req.params.name;
|
|
32
|
+
return name;
|
|
33
|
+
});
|
|
34
|
+
router.get('/health', (req) => {
|
|
35
|
+
// No params — `req.params` is `{}`. Reading any key would be an error.
|
|
36
|
+
return req.params;
|
|
37
|
+
});
|
|
38
|
+
// ─── Handler typing (negative) ─────────────────────────────
|
|
39
|
+
router.get('/users/:id', (req) => {
|
|
40
|
+
// @ts-expect-error `notReal` is not a declared param
|
|
41
|
+
return req.params.notReal;
|
|
42
|
+
});
|
|
43
|
+
router.get('/users/:id', (req) => {
|
|
44
|
+
// @ts-expect-error optional access pattern on required param — `id` is `string`, not nullable
|
|
45
|
+
const id = req.params.id;
|
|
46
|
+
return id;
|
|
47
|
+
});
|
|
48
|
+
router.get('/files/:name?', (req) => {
|
|
49
|
+
// @ts-expect-error `name` is `string | undefined`, not assignable to `string`
|
|
50
|
+
const name = req.params.name;
|
|
51
|
+
return name;
|
|
52
|
+
});
|
|
53
|
+
// ─── Opts form: req.query inferred from Zod schema ─────────
|
|
54
|
+
router.get('/users/:id', { query: z.object({ page: z.coerce.number(), q: z.string() }) }, (req) => {
|
|
55
|
+
const id = req.params.id;
|
|
56
|
+
const page = req.query.page;
|
|
57
|
+
const q = req.query.q;
|
|
58
|
+
return { id, page, q };
|
|
59
|
+
});
|
|
60
|
+
router.get('/search', { query: z.object({ q: z.string() }) }, (req) => {
|
|
61
|
+
// @ts-expect-error `page` is not in the query schema
|
|
62
|
+
return req.query.page;
|
|
63
|
+
});
|
|
64
|
+
router.get('/search', { query: z.object({ q: z.string() }) }, (req) => {
|
|
65
|
+
// @ts-expect-error `q` is `string`, not `number`
|
|
66
|
+
const q = req.query.q;
|
|
67
|
+
return q;
|
|
68
|
+
});
|
|
69
|
+
// ─── Other AppRequest fields still accessible ──────────────
|
|
70
|
+
router.get('/health', (req) => {
|
|
71
|
+
const method = req.method;
|
|
72
|
+
const url = req.url;
|
|
73
|
+
const headers = req.headers;
|
|
74
|
+
const query = req.query;
|
|
75
|
+
return { method, url, headers, query };
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=typed-routes.test-d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-routes.test-d.js","sourceRoot":"","sources":["../src/typed-routes.test-d.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAGnC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;AAM3B,MAAM,KAAK,GAAG,GAA0B,EAAE,CAAC,SAAS,CAAA;AAEpD,KAAK,EAAmD,CAAA;AACxD,KAAK,EAAiF,CAAA;AACtF,KAAK,EAAyD,CAAA;AAC9D,KAAK,EAA2D,CAAA;AAChE,mEAAmE;AACnE,KAAK,EAAoC,CAAA;AACzC,mEAAmE;AACnE,KAAK,EAA8B,CAAA;AAEnC,8DAA8D;AAE9D,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;IAC/B,MAAM,EAAE,GAAW,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;IAChC,OAAO,EAAE,CAAA;AACX,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,GAAG,EAAE,EAAE;IAC9C,MAAM,EAAE,GAAe,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAW,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;IACxC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAA;AACvB,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE;IAClC,MAAM,IAAI,GAAuB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAA;IAChD,OAAO,IAAI,CAAA;AACb,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;IAC5B,uEAAuE;IACvE,OAAO,GAAG,CAAC,MAAM,CAAA;AACnB,CAAC,CAAC,CAAA;AAEF,8DAA8D;AAE9D,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;IAC/B,qDAAqD;IACrD,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAA;AAC3B,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;IAC/B,8FAA8F;IAC9F,MAAM,EAAE,GAAc,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;IACnC,OAAO,EAAE,CAAA;AACX,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE;IAClC,8EAA8E;IAC9E,MAAM,IAAI,GAAW,GAAG,CAAC,MAAM,CAAC,IAAI,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC,CAAC,CAAA;AAEF,8DAA8D;AAE9D,MAAM,CAAC,GAAG,CACR,YAAY,EACZ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAC/D,CAAC,GAAG,EAAE,EAAE;IACN,MAAM,EAAE,GAAa,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;IAClC,MAAM,IAAI,GAAW,GAAG,CAAC,KAAK,CAAC,IAAI,CAAA;IACnC,MAAM,CAAC,GAAc,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAChC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AACxB,CAAC,CACF,CAAA;AAED,MAAM,CAAC,GAAG,CACR,SAAS,EACT,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EACtC,CAAC,GAAG,EAAE,EAAE;IACN,qDAAqD;IACrD,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAA;AACvB,CAAC,CACF,CAAA;AAED,MAAM,CAAC,GAAG,CACR,SAAS,EACT,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EACtC,CAAC,GAAG,EAAE,EAAE;IACN,iDAAiD;IACjD,MAAM,CAAC,GAAW,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7B,OAAO,CAAC,CAAA;AACV,CAAC,CACF,CAAA;AAED,8DAA8D;AAE9D,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;IAC5B,MAAM,MAAM,GAA6B,GAAG,CAAC,MAAM,CAAA;IACnD,MAAM,GAAG,GAAgC,GAAG,CAAC,GAAG,CAAA;IAChD,MAAM,OAAO,GAA4B,GAAG,CAAC,OAAO,CAAA;IACpD,MAAM,KAAK,GAA8B,GAAG,CAAC,KAAK,CAAA;IAClD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AACxC,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rudderjs/router",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"reflect-metadata": "^0.2.2",
|
|
33
|
-
"
|
|
33
|
+
"zod": "^4.0.0",
|
|
34
|
+
"@rudderjs/contracts": "^1.7.0"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@types/node": "^20.0.0",
|
|
@@ -45,6 +46,6 @@
|
|
|
45
46
|
"typecheck": "tsc --noEmit",
|
|
46
47
|
"lint": "eslint src",
|
|
47
48
|
"clean": "rm -rf dist",
|
|
48
|
-
"test": "tsc -p tsconfig.test.json && node --test dist-test/index.test.js dist-test/resource.test.js; EXIT=$?; rm -rf dist-test; exit $EXIT"
|
|
49
|
+
"test": "tsc -p tsconfig.test.json && node --test dist-test/index.test.js dist-test/resource.test.js dist-test/query-validator.test.js; EXIT=$?; rm -rf dist-test; exit $EXIT"
|
|
49
50
|
}
|
|
50
51
|
}
|