@visulima/connect 3.0.27 → 4.0.0-alpha.10
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/CHANGELOG.md +116 -0
- package/LICENSE.md +1 -1
- package/README.md +28 -18
- package/dist/adapter/express.d.cts +1 -1
- package/dist/adapter/express.d.mts +1 -1
- package/dist/adapter/express.d.ts +1 -1
- package/dist/adapter/with-zod.d.cts +3 -7
- package/dist/adapter/with-zod.d.mts +3 -7
- package/dist/adapter/with-zod.d.ts +3 -7
- package/dist/edge.d.cts +5 -5
- package/dist/edge.d.mts +5 -5
- package/dist/edge.d.ts +5 -5
- package/dist/index.cjs +6 -6
- package/dist/index.mjs +6 -6
- package/dist/node.d.cts +4 -8
- package/dist/node.d.mts +4 -8
- package/dist/node.d.ts +4 -8
- package/dist/packem_shared/{EdgeRouter-CdtQHTwm.mjs → EdgeRouter-BHls0yWC.mjs} +43 -33
- package/dist/packem_shared/{EdgeRouter-B-e2l9un.cjs → EdgeRouter-DTvPX_JS.cjs} +43 -33
- package/dist/packem_shared/Router-CT_g_29S.mjs +168 -0
- package/dist/packem_shared/Router-DMp6zIkp.cjs +172 -0
- package/dist/packem_shared/{createRouter-C8hDVJcV.cjs → createRouter-B4-TLOnM.cjs} +43 -32
- package/dist/packem_shared/{createRouter-_G1XhaP4.mjs → createRouter-DGGDIRda.mjs} +43 -32
- package/dist/packem_shared/expressWrapper-CeTFmeNH.mjs +14 -0
- package/dist/packem_shared/expressWrapper-oEj2tv9s.cjs +16 -0
- package/dist/packem_shared/{sendJson-DwLYLDbt.mjs → sendJson-Cd6CsJC_.mjs} +1 -1
- package/dist/packem_shared/{sendJson-pJY2tT2n.cjs → sendJson-DjC80Qht.cjs} +1 -1
- package/dist/packem_shared/{withZod-HYgoC7AX.mjs → withZod-DMHxmHJB.mjs} +3 -6
- package/dist/packem_shared/withZod-hpoT0ByV.cjs +34 -0
- package/dist/router.d.cts +6 -1
- package/dist/router.d.mts +6 -1
- package/dist/router.d.ts +6 -1
- package/dist/utils/send-json.d.cts +4 -4
- package/dist/utils/send-json.d.mts +4 -4
- package/dist/utils/send-json.d.ts +4 -4
- package/package.json +7 -6
- package/dist/packem_shared/Router-ChnTdYfl.mjs +0 -135
- package/dist/packem_shared/Router-Eg_OPxIL.cjs +0 -139
- package/dist/packem_shared/expressWrapper-CTExfWvM.cjs +0 -10
- package/dist/packem_shared/expressWrapper-spfs58is.mjs +0 -8
- package/dist/packem_shared/withZod-ULTsdyM5.cjs +0 -24
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,119 @@
|
|
|
1
|
+
## @visulima/connect [4.0.0-alpha.10](https://github.com/visulima/visulima/compare/@visulima/connect@4.0.0-alpha.9...@visulima/connect@4.0.0-alpha.10) (2026-04-22)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* Remove JSR configuration generation script and generated jsr.json files ([#616](https://github.com/visulima/visulima/issues/616)) ([533744b](https://github.com/visulima/visulima/commit/533744b103b74896941db5b727173e617a27a63b))
|
|
6
|
+
|
|
7
|
+
### Miscellaneous Chores
|
|
8
|
+
|
|
9
|
+
* bump engines.node to ^22.14.0 || >=24.10.0 ([c3d0931](https://github.com/visulima/visulima/commit/c3d0931d1504e4f21ebf50ea680cfa7ce4ba15ce))
|
|
10
|
+
* fixed jsr.json ([5d85e51](https://github.com/visulima/visulima/commit/5d85e5179de38e284ec433b14d77c71a1619c8d6))
|
|
11
|
+
|
|
12
|
+
## @visulima/connect [4.0.0-alpha.9](https://github.com/visulima/visulima/compare/@visulima/connect@4.0.0-alpha.8...@visulima/connect@4.0.0-alpha.9) (2026-04-15)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* **api:** resolve eslint and type-safety issues across api packages ([3601491](https://github.com/visulima/visulima/commit/3601491261de56b5cfad87c97daafd458e4ee3b6))
|
|
17
|
+
* **connect:** cast onNoMatch/onError defaults through unknown for stricter handler types ([d1bfb2e](https://github.com/visulima/visulima/commit/d1bfb2eeb0b0760b9e4a4536bd6a58301f7628db))
|
|
18
|
+
|
|
19
|
+
## @visulima/connect [4.0.0-alpha.8](https://github.com/visulima/visulima/compare/@visulima/connect@4.0.0-alpha.7...@visulima/connect@4.0.0-alpha.8) (2026-04-08)
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* **connect:** properly fix eslint errors in code ([5266ef1](https://github.com/visulima/visulima/commit/5266ef1ee416732409b8bff352247fc972929634))
|
|
24
|
+
* **connect:** remove remaining eslint suppressions with proper code fixes ([bc69936](https://github.com/visulima/visulima/commit/bc69936bd0508def799d95a1772a5792fb57949c))
|
|
25
|
+
* **connect:** resolve eslint errors ([49abc96](https://github.com/visulima/visulima/commit/49abc96b7cccbedb47507adda539cdf715dfc7a9))
|
|
26
|
+
|
|
27
|
+
### Miscellaneous Chores
|
|
28
|
+
|
|
29
|
+
* **api:** remove empty dependency objects from package.json ([f6bfc85](https://github.com/visulima/visulima/commit/f6bfc85c48c973ff8ea0a7db5951794ae0ea3efb))
|
|
30
|
+
* **connect:** add tsconfig.eslint.json for type-aware linting ([d8e6ae1](https://github.com/visulima/visulima/commit/d8e6ae1cfe5ce82d228054feb35b7fa4a4503211))
|
|
31
|
+
* **connect:** apply prettier formatting ([8ecf930](https://github.com/visulima/visulima/commit/8ecf93071cb0087a8c49520cc594a753dba5e39d))
|
|
32
|
+
* **connect:** migrate .prettierrc.cjs to prettier.config.js ([949d441](https://github.com/visulima/visulima/commit/949d44166d9ce6f66044d87eb0bdd0a8b85c03ed))
|
|
33
|
+
|
|
34
|
+
## @visulima/connect [4.0.0-alpha.7](https://github.com/visulima/visulima/compare/@visulima/connect@4.0.0-alpha.6...@visulima/connect@4.0.0-alpha.7) (2026-03-26)
|
|
35
|
+
|
|
36
|
+
### Features
|
|
37
|
+
|
|
38
|
+
* **web:** auto-generate packages page from workspace metadata ([623e520](https://github.com/visulima/visulima/commit/623e5207693a7fe720f5f2f179593a3654c880e3))
|
|
39
|
+
|
|
40
|
+
### Miscellaneous Chores
|
|
41
|
+
|
|
42
|
+
* update homepage URLs to visulima.com/packages/ format ([be42968](https://github.com/visulima/visulima/commit/be42968129df85fb074224435e33135ff44cab91))
|
|
43
|
+
|
|
44
|
+
## @visulima/connect [4.0.0-alpha.6](https://github.com/visulima/visulima/compare/@visulima/connect@4.0.0-alpha.5...@visulima/connect@4.0.0-alpha.6) (2026-03-26)
|
|
45
|
+
|
|
46
|
+
### Bug Fixes
|
|
47
|
+
|
|
48
|
+
* **connect:** use workspace:* for internal [@visulima](https://github.com/visulima) deps ([7edea03](https://github.com/visulima/visulima/commit/7edea03b564d19f7393f01138b74ac1239562dd9))
|
|
49
|
+
* **web:** enhance copy-package-docs with asset copying, link rewriting, and broken link removal ([05e481f](https://github.com/visulima/visulima/commit/05e481f8280ba889d241a645f29c573554822f3d))
|
|
50
|
+
* **web:** improve build setup with incremental stats caching and prod install ([fe33e75](https://github.com/visulima/visulima/commit/fe33e75827586779b4b3a0c6d57b39f889ee6207))
|
|
51
|
+
|
|
52
|
+
### Miscellaneous Chores
|
|
53
|
+
|
|
54
|
+
* **connect:** migrate deps to pnpm catalogs ([30a087b](https://github.com/visulima/visulima/commit/30a087b2f08bfe17b733cf0bdd969f1638189fca))
|
|
55
|
+
* **connect:** update dependencies ([a9ec468](https://github.com/visulima/visulima/commit/a9ec4689533c84c075519c2622f48854ceb05a0d))
|
|
56
|
+
|
|
57
|
+
### Code Refactoring
|
|
58
|
+
|
|
59
|
+
* **docs:** migrate Nextra components to fumadocs-ui, remove Nextra stripping ([484878f](https://github.com/visulima/visulima/commit/484878f01879363ef5e9a0282904dc4627d6060c))
|
|
60
|
+
|
|
61
|
+
## @visulima/connect [4.0.0-alpha.5](https://github.com/visulima/visulima/compare/@visulima/connect@4.0.0-alpha.4...@visulima/connect@4.0.0-alpha.5) (2026-03-06)
|
|
62
|
+
|
|
63
|
+
### Bug Fixes
|
|
64
|
+
|
|
65
|
+
* **connect:** update packem to 2.0.0-alpha.54 ([840996e](https://github.com/visulima/visulima/commit/840996e2d727531c4bf9b27b5f10d709740b0280))
|
|
66
|
+
|
|
67
|
+
### Miscellaneous Chores
|
|
68
|
+
|
|
69
|
+
* **api:** update dependencies ([f3b6f7c](https://github.com/visulima/visulima/commit/f3b6f7c956e8ae2c0da67773b3790f159c07de29))
|
|
70
|
+
* **connect:** update dependencies ([02fa39c](https://github.com/visulima/visulima/commit/02fa39cba26804aa95eef0a69e08bc7d365ff282))
|
|
71
|
+
* **connect:** update dependencies ([bd628b3](https://github.com/visulima/visulima/commit/bd628b38c9b2bc0f6fed5af5f19d4dbace9f7c21))
|
|
72
|
+
* update lock file maintenance ([d83e716](https://github.com/visulima/visulima/commit/d83e71697b75d24704185b66bb521a934d2db02d))
|
|
73
|
+
* year update ([47f4105](https://github.com/visulima/visulima/commit/47f410596ce7190cfea36a073db32e0cec50bbcd))
|
|
74
|
+
|
|
75
|
+
## @visulima/connect [4.0.0-alpha.4](https://github.com/visulima/visulima/compare/@visulima/connect@4.0.0-alpha.3...@visulima/connect@4.0.0-alpha.4) (2025-12-27)
|
|
76
|
+
|
|
77
|
+
### Bug Fixes
|
|
78
|
+
|
|
79
|
+
* **connect:** update package files ([f5594b5](https://github.com/visulima/visulima/commit/f5594b54b2e9dc440fa3ea09efa361ca2030b125))
|
|
80
|
+
|
|
81
|
+
### Miscellaneous Chores
|
|
82
|
+
|
|
83
|
+
* fixed project.json names and schema path ([964722f](https://github.com/visulima/visulima/commit/964722f691db205c7edb9aa6db29e849a647500b))
|
|
84
|
+
|
|
85
|
+
## @visulima/connect [4.0.0-alpha.3](https://github.com/visulima/visulima/compare/@visulima/connect@4.0.0-alpha.2...@visulima/connect@4.0.0-alpha.3) (2025-12-11)
|
|
86
|
+
|
|
87
|
+
### Bug Fixes
|
|
88
|
+
|
|
89
|
+
* update package OG images across multiple packages ([f08e4dd](https://github.com/visulima/visulima/commit/f08e4dd2b105ccb29c8412020a9c2be36d6c1e9e))
|
|
90
|
+
|
|
91
|
+
## @visulima/connect [4.0.0-alpha.2](https://github.com/visulima/visulima/compare/@visulima/connect@4.0.0-alpha.1...@visulima/connect@4.0.0-alpha.2) (2025-12-06)
|
|
92
|
+
|
|
93
|
+
### Bug Fixes
|
|
94
|
+
|
|
95
|
+
* add new package image, fixed readme rendering on npm, fixed building of packages ([b790ba2](https://github.com/visulima/visulima/commit/b790ba253ea07fef83528fd822a678facf021b5f))
|
|
96
|
+
* update package.json description and keywords ([#578](https://github.com/visulima/visulima/issues/578)) ([154709c](https://github.com/visulima/visulima/commit/154709c05e71d1ffd3e360b27e12febd817912f0))
|
|
97
|
+
|
|
98
|
+
### Miscellaneous Chores
|
|
99
|
+
|
|
100
|
+
* update @anolilab/semantic-release-pnpm and @anolilab/semantic-release-preset to versions 3.2.2 and 12.1.2 across multiple package.json files for improved compatibility ([3921626](https://github.com/visulima/visulima/commit/3921626141fe5da398749bf0ba675f1596f18afb))
|
|
101
|
+
|
|
102
|
+
## @visulima/connect [4.0.0-alpha.1](https://github.com/visulima/visulima/compare/@visulima/connect@3.0.27...@visulima/connect@4.0.0-alpha.1) (2025-12-04)
|
|
103
|
+
|
|
104
|
+
### ⚠ BREAKING CHANGES
|
|
105
|
+
|
|
106
|
+
* change min node version to 22.13
|
|
107
|
+
|
|
108
|
+
### Bug Fixes
|
|
109
|
+
|
|
110
|
+
* update Node.js engine version requirement to >=22.13 in multiple package.json files for improved compatibility ([b828e9a](https://github.com/visulima/visulima/commit/b828e9aeaebfc798eecddccd90e6ec7560c6d36a))
|
|
111
|
+
|
|
112
|
+
### Miscellaneous Chores
|
|
113
|
+
|
|
114
|
+
* moved all packages into groups ([0615e9d](https://github.com/visulima/visulima/commit/0615e9d14a8a886e11da529ce150cf31ca973c10))
|
|
115
|
+
* update dependencies across multiple packages to improve compatibility and performance, including upgrading `@anolilab/semantic-release-pnpm` and `@anolilab/semantic-release-preset` to versions 3.2.0 and 12.1.0 respectively, and updating `react`, `react-dom`, and `next` versions to 19.2.1 and 16.0.7 in various package.json files ([aee8fcd](https://github.com/visulima/visulima/commit/aee8fcd796ae9b8d055903260e7150996ea9f53d))
|
|
116
|
+
|
|
1
117
|
## @visulima/connect [3.0.27](https://github.com/visulima/visulima/compare/@visulima/connect@3.0.26...@visulima/connect@3.0.27) (2025-11-13)
|
|
2
118
|
|
|
3
119
|
### Bug Fixes
|
package/LICENSE.md
CHANGED
package/README.md
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
<h3>Visulima connect</h3>
|
|
3
|
-
<p>
|
|
4
|
-
The promise-based method routing and middleware layer with zod validation for <a href="https://nextjs.org/" title="Next.js">Next.js</a> (API Routes, Edge API Routes, App Router, getServerSideProps, Middleware) and many other frameworks is built on top of
|
|
1
|
+
<!-- START_PACKAGE_OG_IMAGE_PLACEHOLDER -->
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
[regexparam](https://github.com/lukeed/regexparam)
|
|
3
|
+
<a href="https://www.anolilab.com/open-source" align="center">
|
|
8
4
|
|
|
9
|
-
|
|
5
|
+
<img src="__assets__/package-og.svg" alt="connect" />
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
</a>
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
<h3 align="center">The minimal router and middleware layer for Next.js, Micro, Vercel, or Node.js http/http2 with support for zod validation.</h3>
|
|
10
|
+
|
|
11
|
+
<!-- END_PACKAGE_OG_IMAGE_PLACEHOLDER -->
|
|
15
12
|
|
|
16
13
|
<br />
|
|
17
14
|
|
|
18
15
|
<div align="center">
|
|
19
16
|
|
|
20
|
-
[![typescript-image]
|
|
17
|
+
[![typescript-image][typescript-badge]][typescript-url]
|
|
18
|
+
[![mit licence][license-badge]][license]
|
|
19
|
+
[![npm downloads][npm-downloads-badge]][npm-downloads]
|
|
20
|
+
[![Chat][chat-badge]][chat]
|
|
21
|
+
[![PRs Welcome][prs-welcome-badge]][prs-welcome]
|
|
21
22
|
|
|
22
23
|
</div>
|
|
23
24
|
|
|
@@ -616,14 +617,23 @@ If you would like to help take a look at the [list of issues](https://github.com
|
|
|
616
617
|
- [Daniel Bannert](https://github.com/prisis)
|
|
617
618
|
- [All Contributors](https://github.com/visulima/visulima/graphs/contributors)
|
|
618
619
|
|
|
620
|
+
## Made with ❤️ at Anolilab
|
|
621
|
+
|
|
622
|
+
This is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. [Anolilab](https://www.anolilab.com/open-source) is a Development and AI Studio. Contact us at [hello@anolilab.com](mailto:hello@anolilab.com) if you need any help with these technologies or just want to say hi!
|
|
623
|
+
|
|
619
624
|
## License
|
|
620
625
|
|
|
621
|
-
The visulima connect is open-sourced software licensed under the [MIT][license
|
|
626
|
+
The visulima connect is open-sourced software licensed under the [MIT][license]
|
|
622
627
|
|
|
623
|
-
|
|
628
|
+
<!-- badges -->
|
|
624
629
|
|
|
625
|
-
[
|
|
626
|
-
[license
|
|
627
|
-
[
|
|
628
|
-
[npm-
|
|
629
|
-
[
|
|
630
|
+
[license-badge]: https://img.shields.io/npm/l/@visulima/connect?style=for-the-badge
|
|
631
|
+
[license]: https://github.com/visulima/visulima/blob/main/LICENSE
|
|
632
|
+
[npm-downloads-badge]: https://img.shields.io/npm/dm/@visulima/connect?style=for-the-badge
|
|
633
|
+
[npm-downloads]: https://www.npmjs.com/package/@visulima/connect
|
|
634
|
+
[prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge
|
|
635
|
+
[prs-welcome]: https://github.com/visulima/visulima/blob/main/.github/CONTRIBUTING.md
|
|
636
|
+
[chat-badge]: https://img.shields.io/discord/932323359193186354.svg?style=for-the-badge
|
|
637
|
+
[chat]: https://discord.gg/TtFJY8xkFK
|
|
638
|
+
[typescript-badge]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript
|
|
639
|
+
[typescript-url]: https://www.typescriptlang.org/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
2
|
import type { RequestHandler } from "../node.d.cts";
|
|
3
3
|
import type { Nextable } from "../types.d.d.cts";
|
|
4
|
-
type NextFunction = (error?:
|
|
4
|
+
type NextFunction = (error?: Error) => void;
|
|
5
5
|
declare const expressWrapper: <Request extends IncomingMessage, Response extends ServerResponse>(function_: ExpressRequestHandler<Request, Response>) => Nextable<RequestHandler<Request, Response>>;
|
|
6
6
|
export type ExpressRequestHandler<Request, Response> = (request: Request, response: Response, next: NextFunction) => void;
|
|
7
7
|
export = expressWrapper;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
2
|
import type { RequestHandler } from "../node.d.mts";
|
|
3
3
|
import type { Nextable } from "../types.d.d.mts";
|
|
4
|
-
type NextFunction = (error?:
|
|
4
|
+
type NextFunction = (error?: Error) => void;
|
|
5
5
|
declare const expressWrapper: <Request extends IncomingMessage, Response extends ServerResponse>(function_: ExpressRequestHandler<Request, Response>) => Nextable<RequestHandler<Request, Response>>;
|
|
6
6
|
export type ExpressRequestHandler<Request, Response> = (request: Request, response: Response, next: NextFunction) => void;
|
|
7
7
|
export default expressWrapper;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
2
|
import type { RequestHandler } from "../node.d.ts";
|
|
3
3
|
import type { Nextable } from "../types.d.d.ts";
|
|
4
|
-
type NextFunction = (error?:
|
|
4
|
+
type NextFunction = (error?: Error) => void;
|
|
5
5
|
declare const expressWrapper: <Request extends IncomingMessage, Response extends ServerResponse>(function_: ExpressRequestHandler<Request, Response>) => Nextable<RequestHandler<Request, Response>>;
|
|
6
6
|
export type ExpressRequestHandler<Request, Response> = (request: Request, response: Response, next: NextFunction) => void;
|
|
7
7
|
export = expressWrapper;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { Nextable, NextHandler } from "../types.d.d.cts";
|
|
3
|
-
declare const withZod: <
|
|
4
|
-
body?: ZodObject<any>;
|
|
5
|
-
headers?: ZodObject<any>;
|
|
6
|
-
query?: ZodObject<any>;
|
|
7
|
-
}>>(schema: Schema, handler: Handler) => (request: Request, response: Response, next: NextHandler) => Promise<Response>;
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import type { FunctionLike, Nextable, NextHandler } from "../types.d.d.cts";
|
|
3
|
+
declare const withZod: (schema: z.ZodObject<any>, handler: Nextable<FunctionLike>) => (request: unknown, response: unknown, next: NextHandler) => Promise<unknown>;
|
|
8
4
|
export = withZod;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { Nextable, NextHandler } from "../types.d.d.mts";
|
|
3
|
-
declare const withZod: <
|
|
4
|
-
body?: ZodObject<any>;
|
|
5
|
-
headers?: ZodObject<any>;
|
|
6
|
-
query?: ZodObject<any>;
|
|
7
|
-
}>>(schema: Schema, handler: Handler) => (request: Request, response: Response, next: NextHandler) => Promise<Response>;
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import type { FunctionLike, Nextable, NextHandler } from "../types.d.d.mts";
|
|
3
|
+
declare const withZod: (schema: z.ZodObject<any>, handler: Nextable<FunctionLike>) => (request: unknown, response: unknown, next: NextHandler) => Promise<unknown>;
|
|
8
4
|
export default withZod;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { Nextable, NextHandler } from "../types.d.d.ts";
|
|
3
|
-
declare const withZod: <
|
|
4
|
-
body?: ZodObject<any>;
|
|
5
|
-
headers?: ZodObject<any>;
|
|
6
|
-
query?: ZodObject<any>;
|
|
7
|
-
}>>(schema: Schema, handler: Handler) => (request: Request, response: Response, next: NextHandler) => Promise<Response>;
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import type { FunctionLike, Nextable, NextHandler } from "../types.d.d.ts";
|
|
3
|
+
declare const withZod: (schema: z.ZodObject<any>, handler: Nextable<FunctionLike>) => (request: unknown, response: unknown, next: NextHandler) => Promise<unknown>;
|
|
8
4
|
export = withZod;
|
package/dist/edge.d.cts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type * as z from "zod";
|
|
2
2
|
import type { Route } from "./router.d.cts";
|
|
3
3
|
import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.cts";
|
|
4
4
|
export declare const getPathname: (request: Request & {
|
|
5
5
|
nextUrl?: URL;
|
|
6
6
|
}) => string;
|
|
7
|
-
export type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response |
|
|
8
|
-
export declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends ZodObject<any> = ZodObject<any>> {
|
|
7
|
+
export type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response | undefined>;
|
|
8
|
+
export declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends z.ZodObject<any> = z.ZodObject<any>> {
|
|
9
|
+
private static prepareRequest;
|
|
9
10
|
all: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
|
|
10
11
|
connect: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
|
|
11
12
|
delete: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
|
|
@@ -21,10 +22,9 @@ export declare class EdgeRouter<R extends Request = Request, Context = unknown,
|
|
|
21
22
|
private router;
|
|
22
23
|
constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, RResponse, Route<Nextable<FunctionLike>>[]>>);
|
|
23
24
|
clone(): EdgeRouter<R, Context, RResponse, Schema>;
|
|
24
|
-
handler(): (request: R, context_: Context) => Promise<
|
|
25
|
+
handler(): (request: R, context_: Context) => Promise<RResponse | undefined>;
|
|
25
26
|
run(request: R, context_: Context): Promise<unknown>;
|
|
26
27
|
use(base: EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>> | RouteMatch, ...fns: (EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>>)[]): this;
|
|
27
28
|
private add;
|
|
28
|
-
private prepareRequest;
|
|
29
29
|
}
|
|
30
30
|
export declare const createEdgeRouter: <R extends Request, Context>(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, Response, Route<Nextable<FunctionLike>>[]>>) => EdgeRouter<R, Context>;
|
package/dist/edge.d.mts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type * as z from "zod";
|
|
2
2
|
import type { Route } from "./router.d.mts";
|
|
3
3
|
import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.mts";
|
|
4
4
|
export declare const getPathname: (request: Request & {
|
|
5
5
|
nextUrl?: URL;
|
|
6
6
|
}) => string;
|
|
7
|
-
export type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response |
|
|
8
|
-
export declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends ZodObject<any> = ZodObject<any>> {
|
|
7
|
+
export type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response | undefined>;
|
|
8
|
+
export declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends z.ZodObject<any> = z.ZodObject<any>> {
|
|
9
|
+
private static prepareRequest;
|
|
9
10
|
all: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
|
|
10
11
|
connect: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
|
|
11
12
|
delete: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
|
|
@@ -21,10 +22,9 @@ export declare class EdgeRouter<R extends Request = Request, Context = unknown,
|
|
|
21
22
|
private router;
|
|
22
23
|
constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, RResponse, Route<Nextable<FunctionLike>>[]>>);
|
|
23
24
|
clone(): EdgeRouter<R, Context, RResponse, Schema>;
|
|
24
|
-
handler(): (request: R, context_: Context) => Promise<
|
|
25
|
+
handler(): (request: R, context_: Context) => Promise<RResponse | undefined>;
|
|
25
26
|
run(request: R, context_: Context): Promise<unknown>;
|
|
26
27
|
use(base: EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>> | RouteMatch, ...fns: (EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>>)[]): this;
|
|
27
28
|
private add;
|
|
28
|
-
private prepareRequest;
|
|
29
29
|
}
|
|
30
30
|
export declare const createEdgeRouter: <R extends Request, Context>(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, Response, Route<Nextable<FunctionLike>>[]>>) => EdgeRouter<R, Context>;
|
package/dist/edge.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type * as z from "zod";
|
|
2
2
|
import type { Route } from "./router.d.ts";
|
|
3
3
|
import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.ts";
|
|
4
4
|
export declare const getPathname: (request: Request & {
|
|
5
5
|
nextUrl?: URL;
|
|
6
6
|
}) => string;
|
|
7
|
-
export type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response |
|
|
8
|
-
export declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends ZodObject<any> = ZodObject<any>> {
|
|
7
|
+
export type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response | undefined>;
|
|
8
|
+
export declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends z.ZodObject<any> = z.ZodObject<any>> {
|
|
9
|
+
private static prepareRequest;
|
|
9
10
|
all: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
|
|
10
11
|
connect: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
|
|
11
12
|
delete: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
|
|
@@ -21,10 +22,9 @@ export declare class EdgeRouter<R extends Request = Request, Context = unknown,
|
|
|
21
22
|
private router;
|
|
22
23
|
constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, RResponse, Route<Nextable<FunctionLike>>[]>>);
|
|
23
24
|
clone(): EdgeRouter<R, Context, RResponse, Schema>;
|
|
24
|
-
handler(): (request: R, context_: Context) => Promise<
|
|
25
|
+
handler(): (request: R, context_: Context) => Promise<RResponse | undefined>;
|
|
25
26
|
run(request: R, context_: Context): Promise<unknown>;
|
|
26
27
|
use(base: EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>> | RouteMatch, ...fns: (EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>>)[]): this;
|
|
27
28
|
private add;
|
|
28
|
-
private prepareRequest;
|
|
29
29
|
}
|
|
30
30
|
export declare const createEdgeRouter: <R extends Request, Context>(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, Response, Route<Nextable<FunctionLike>>[]>>) => EdgeRouter<R, Context>;
|
package/dist/index.cjs
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
4
|
|
|
5
|
-
const expressWrapper = require('./packem_shared/expressWrapper-
|
|
6
|
-
const withZod = require('./packem_shared/withZod-
|
|
7
|
-
const EdgeRouter = require('./packem_shared/EdgeRouter-
|
|
8
|
-
const createRouter = require('./packem_shared/createRouter-
|
|
9
|
-
const Router = require('./packem_shared/Router-
|
|
10
|
-
const sendJson = require('./packem_shared/sendJson-
|
|
5
|
+
const expressWrapper = require('./packem_shared/expressWrapper-oEj2tv9s.cjs');
|
|
6
|
+
const withZod = require('./packem_shared/withZod-hpoT0ByV.cjs');
|
|
7
|
+
const EdgeRouter = require('./packem_shared/EdgeRouter-DTvPX_JS.cjs');
|
|
8
|
+
const createRouter = require('./packem_shared/createRouter-B4-TLOnM.cjs');
|
|
9
|
+
const Router = require('./packem_shared/Router-DMp6zIkp.cjs');
|
|
10
|
+
const sendJson = require('./packem_shared/sendJson-DjC80Qht.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { default as expressWrapper } from './packem_shared/expressWrapper-
|
|
2
|
-
export { default as withZod } from './packem_shared/withZod-
|
|
3
|
-
export { EdgeRouter, createEdgeRouter } from './packem_shared/EdgeRouter-
|
|
4
|
-
export { NodeRouter, createRouter as createNodeRouter, createRouter } from './packem_shared/createRouter-
|
|
5
|
-
export { Router } from './packem_shared/Router-
|
|
6
|
-
export { default as sendJson } from './packem_shared/sendJson-
|
|
1
|
+
export { default as expressWrapper } from './packem_shared/expressWrapper-CeTFmeNH.mjs';
|
|
2
|
+
export { default as withZod } from './packem_shared/withZod-DMHxmHJB.mjs';
|
|
3
|
+
export { EdgeRouter, createEdgeRouter } from './packem_shared/EdgeRouter-BHls0yWC.mjs';
|
|
4
|
+
export { NodeRouter, createRouter as createNodeRouter, createRouter } from './packem_shared/createRouter-DGGDIRda.mjs';
|
|
5
|
+
export { Router } from './packem_shared/Router-CT_g_29S.mjs';
|
|
6
|
+
export { default as sendJson } from './packem_shared/sendJson-Cd6CsJC_.mjs';
|
package/dist/node.d.cts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
-
import type
|
|
2
|
+
import type * as z from "zod";
|
|
3
3
|
import type { Route } from "./router.d.cts";
|
|
4
4
|
import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.cts";
|
|
5
5
|
export declare const getPathname: (url: string) => string;
|
|
6
6
|
export type RequestHandler<Request extends IncomingMessage, Response extends ServerResponse> = (request: Request, response: Response) => ValueOrPromise<void>;
|
|
7
|
-
export declare class NodeRouter<Request extends IncomingMessage = IncomingMessage, Response extends ServerResponse = ServerResponse, Schema extends ZodObject<any> = ZodObject<
|
|
7
|
+
export declare class NodeRouter<Request extends IncomingMessage = IncomingMessage, Response extends ServerResponse = ServerResponse, Schema extends z.ZodObject<any> = z.ZodObject<any>> {
|
|
8
|
+
private static prepareRequest;
|
|
8
9
|
all: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
|
|
9
10
|
connect: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
|
|
10
11
|
delete: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
|
|
@@ -24,10 +25,5 @@ export declare class NodeRouter<Request extends IncomingMessage = IncomingMessag
|
|
|
24
25
|
run(request: Request, response: Response): Promise<unknown>;
|
|
25
26
|
use(base: Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema> | RouteMatch, ...fns: (Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema>)[]): this;
|
|
26
27
|
private add;
|
|
27
|
-
private prepareRequest;
|
|
28
28
|
}
|
|
29
|
-
export declare const createRouter: <Request extends IncomingMessage, Response extends ServerResponse, Schema extends ZodObject<any> = ZodObject<
|
|
30
|
-
body?: ZodObject<any>;
|
|
31
|
-
headers?: ZodObject<any>;
|
|
32
|
-
query?: ZodObject<any>;
|
|
33
|
-
}>>(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>) => NodeRouter<Request, Response, Schema>;
|
|
29
|
+
export declare const createRouter: <Request extends IncomingMessage, Response extends ServerResponse, Schema extends z.ZodObject<any> = z.ZodObject<any>>(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>) => NodeRouter<Request, Response, Schema>;
|
package/dist/node.d.mts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
-
import type
|
|
2
|
+
import type * as z from "zod";
|
|
3
3
|
import type { Route } from "./router.d.mts";
|
|
4
4
|
import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.mts";
|
|
5
5
|
export declare const getPathname: (url: string) => string;
|
|
6
6
|
export type RequestHandler<Request extends IncomingMessage, Response extends ServerResponse> = (request: Request, response: Response) => ValueOrPromise<void>;
|
|
7
|
-
export declare class NodeRouter<Request extends IncomingMessage = IncomingMessage, Response extends ServerResponse = ServerResponse, Schema extends ZodObject<any> = ZodObject<
|
|
7
|
+
export declare class NodeRouter<Request extends IncomingMessage = IncomingMessage, Response extends ServerResponse = ServerResponse, Schema extends z.ZodObject<any> = z.ZodObject<any>> {
|
|
8
|
+
private static prepareRequest;
|
|
8
9
|
all: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
|
|
9
10
|
connect: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
|
|
10
11
|
delete: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
|
|
@@ -24,10 +25,5 @@ export declare class NodeRouter<Request extends IncomingMessage = IncomingMessag
|
|
|
24
25
|
run(request: Request, response: Response): Promise<unknown>;
|
|
25
26
|
use(base: Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema> | RouteMatch, ...fns: (Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema>)[]): this;
|
|
26
27
|
private add;
|
|
27
|
-
private prepareRequest;
|
|
28
28
|
}
|
|
29
|
-
export declare const createRouter: <Request extends IncomingMessage, Response extends ServerResponse, Schema extends ZodObject<any> = ZodObject<
|
|
30
|
-
body?: ZodObject<any>;
|
|
31
|
-
headers?: ZodObject<any>;
|
|
32
|
-
query?: ZodObject<any>;
|
|
33
|
-
}>>(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>) => NodeRouter<Request, Response, Schema>;
|
|
29
|
+
export declare const createRouter: <Request extends IncomingMessage, Response extends ServerResponse, Schema extends z.ZodObject<any> = z.ZodObject<any>>(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>) => NodeRouter<Request, Response, Schema>;
|
package/dist/node.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
-
import type
|
|
2
|
+
import type * as z from "zod";
|
|
3
3
|
import type { Route } from "./router.d.ts";
|
|
4
4
|
import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.ts";
|
|
5
5
|
export declare const getPathname: (url: string) => string;
|
|
6
6
|
export type RequestHandler<Request extends IncomingMessage, Response extends ServerResponse> = (request: Request, response: Response) => ValueOrPromise<void>;
|
|
7
|
-
export declare class NodeRouter<Request extends IncomingMessage = IncomingMessage, Response extends ServerResponse = ServerResponse, Schema extends ZodObject<any> = ZodObject<
|
|
7
|
+
export declare class NodeRouter<Request extends IncomingMessage = IncomingMessage, Response extends ServerResponse = ServerResponse, Schema extends z.ZodObject<any> = z.ZodObject<any>> {
|
|
8
|
+
private static prepareRequest;
|
|
8
9
|
all: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
|
|
9
10
|
connect: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
|
|
10
11
|
delete: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
|
|
@@ -24,10 +25,5 @@ export declare class NodeRouter<Request extends IncomingMessage = IncomingMessag
|
|
|
24
25
|
run(request: Request, response: Response): Promise<unknown>;
|
|
25
26
|
use(base: Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema> | RouteMatch, ...fns: (Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema>)[]): this;
|
|
26
27
|
private add;
|
|
27
|
-
private prepareRequest;
|
|
28
28
|
}
|
|
29
|
-
export declare const createRouter: <Request extends IncomingMessage, Response extends ServerResponse, Schema extends ZodObject<any> = ZodObject<
|
|
30
|
-
body?: ZodObject<any>;
|
|
31
|
-
headers?: ZodObject<any>;
|
|
32
|
-
query?: ZodObject<any>;
|
|
33
|
-
}>>(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>) => NodeRouter<Request, Response, Schema>;
|
|
29
|
+
export declare const createRouter: <Request extends IncomingMessage, Response extends ServerResponse, Schema extends z.ZodObject<any> = z.ZodObject<any>>(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>) => NodeRouter<Request, Response, Schema>;
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import withZod from './withZod-
|
|
2
|
-
import { Router } from './Router-
|
|
1
|
+
import withZod from './withZod-DMHxmHJB.mjs';
|
|
2
|
+
import { Router } from './Router-CT_g_29S.mjs';
|
|
3
3
|
|
|
4
|
-
const onNoMatch =
|
|
5
|
-
const onError =
|
|
6
|
-
console.error(error);
|
|
4
|
+
const onNoMatch = (request) => new Response(request.method === "HEAD" ? void 0 : `Route ${request.method} ${request.url} not found`, { status: 404 });
|
|
5
|
+
const onError = (error) => {
|
|
6
|
+
globalThis.console.error(error);
|
|
7
7
|
return new Response("Internal Server Error", { status: 500 });
|
|
8
8
|
};
|
|
9
|
-
const getPathname = (request) => (
|
|
10
|
-
// eslint-disable-next-line compat/compat
|
|
11
|
-
(request.nextUrl ?? new URL(request.url)).pathname
|
|
12
|
-
);
|
|
9
|
+
const getPathname = (request) => (request.nextUrl ?? new URL(request.url)).pathname;
|
|
13
10
|
class EdgeRouter {
|
|
11
|
+
static prepareRequest(request, findResult) {
|
|
12
|
+
request.params = {
|
|
13
|
+
...findResult.params,
|
|
14
|
+
...request.params
|
|
15
|
+
// original params will take precedence
|
|
16
|
+
};
|
|
17
|
+
}
|
|
14
18
|
all = this.add.bind(this, "");
|
|
15
19
|
connect = this.add.bind(this, "CONNECT");
|
|
16
20
|
delete = this.add.bind(this, "DELETE");
|
|
@@ -36,8 +40,10 @@ class EdgeRouter {
|
|
|
36
40
|
handler() {
|
|
37
41
|
const { routes } = this.router;
|
|
38
42
|
return async (request, context_) => {
|
|
39
|
-
const
|
|
40
|
-
|
|
43
|
+
const pathname = getPathname(request);
|
|
44
|
+
const method = request.method;
|
|
45
|
+
const result = this.router.find(method, pathname);
|
|
46
|
+
EdgeRouter.prepareRequest(request, result);
|
|
41
47
|
try {
|
|
42
48
|
return await (result.fns.length === 0 || result.middleOnly ? this.onNoMatch(request, context_, routes) : Router.exec(result.fns, request, context_));
|
|
43
49
|
} catch (error) {
|
|
@@ -46,44 +52,48 @@ class EdgeRouter {
|
|
|
46
52
|
};
|
|
47
53
|
}
|
|
48
54
|
async run(request, context_) {
|
|
49
|
-
const
|
|
55
|
+
const pathname = getPathname(request);
|
|
56
|
+
const method = request.method;
|
|
57
|
+
const result = this.router.find(method, pathname);
|
|
50
58
|
if (result.fns.length === 0) {
|
|
51
|
-
return;
|
|
59
|
+
return void 0;
|
|
52
60
|
}
|
|
53
|
-
|
|
54
|
-
return
|
|
61
|
+
EdgeRouter.prepareRequest(request, result);
|
|
62
|
+
return Router.exec(result.fns, request, context_);
|
|
55
63
|
}
|
|
56
64
|
use(base, ...fns) {
|
|
65
|
+
let resolvedBase;
|
|
57
66
|
if (typeof base === "function" || base instanceof EdgeRouter) {
|
|
58
67
|
fns.unshift(base);
|
|
59
|
-
|
|
68
|
+
resolvedBase = "/";
|
|
69
|
+
} else {
|
|
70
|
+
resolvedBase = base;
|
|
60
71
|
}
|
|
61
|
-
this.router.use(
|
|
72
|
+
this.router.use(
|
|
73
|
+
resolvedBase,
|
|
74
|
+
...fns.map((function_) => {
|
|
75
|
+
if (function_ instanceof EdgeRouter) {
|
|
76
|
+
return function_.router;
|
|
77
|
+
}
|
|
78
|
+
return function_;
|
|
79
|
+
})
|
|
80
|
+
);
|
|
62
81
|
return this;
|
|
63
82
|
}
|
|
64
83
|
add(method, routeOrFunction, zodOrRouteOrFunction, ...fns) {
|
|
84
|
+
let resolvedFns;
|
|
65
85
|
if (typeof routeOrFunction === "string" && typeof zodOrRouteOrFunction === "function") {
|
|
66
|
-
|
|
86
|
+
resolvedFns = [zodOrRouteOrFunction];
|
|
67
87
|
} else if (typeof zodOrRouteOrFunction === "object") {
|
|
68
|
-
|
|
69
|
-
fns = [withZod(zodOrRouteOrFunction, routeOrFunction)];
|
|
70
|
-
} else {
|
|
71
|
-
fns = fns.map((function_) => withZod(zodOrRouteOrFunction, function_));
|
|
72
|
-
}
|
|
88
|
+
resolvedFns = typeof routeOrFunction === "function" ? [withZod(zodOrRouteOrFunction, routeOrFunction)] : fns.map((function_) => withZod(zodOrRouteOrFunction, function_));
|
|
73
89
|
} else if (typeof zodOrRouteOrFunction === "function") {
|
|
74
|
-
|
|
90
|
+
resolvedFns = [zodOrRouteOrFunction];
|
|
91
|
+
} else {
|
|
92
|
+
resolvedFns = fns;
|
|
75
93
|
}
|
|
76
|
-
this.router.add(method, routeOrFunction, ...
|
|
94
|
+
this.router.add(method, routeOrFunction, ...resolvedFns);
|
|
77
95
|
return this;
|
|
78
96
|
}
|
|
79
|
-
// eslint-disable-next-line class-methods-use-this
|
|
80
|
-
prepareRequest(request, findResult) {
|
|
81
|
-
request.params = {
|
|
82
|
-
...findResult.params,
|
|
83
|
-
...request.params
|
|
84
|
-
// original params will take precedence
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
97
|
}
|
|
88
98
|
const createEdgeRouter = (options = {}) => new EdgeRouter(options);
|
|
89
99
|
|