@visulima/connect 4.0.0-alpha.2 → 4.0.0-alpha.20

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +119 -0
  2. package/LICENSE.md +1 -1
  3. package/dist/index.cjs +1 -22
  4. package/dist/index.d.cts +107 -12
  5. package/dist/index.d.mts +107 -12
  6. package/dist/index.d.ts +107 -12
  7. package/dist/index.mjs +1 -6
  8. package/dist/packem_shared/EdgeRouter-BcLsFhoc.mjs +1 -0
  9. package/dist/packem_shared/EdgeRouter-C2WRZNVK.cjs +1 -0
  10. package/dist/packem_shared/Router-CtUe2eVq.cjs +1 -0
  11. package/dist/packem_shared/Router-ZvrvfK8e.mjs +1 -0
  12. package/dist/packem_shared/createRouter-DgHlwXny.cjs +1 -0
  13. package/dist/packem_shared/createRouter-DrcL8lRU.mjs +1 -0
  14. package/dist/packem_shared/expressWrapper-BMEaodw_.mjs +1 -0
  15. package/dist/packem_shared/expressWrapper-C745BRwk.cjs +1 -0
  16. package/dist/packem_shared/sendJson-CIEUTdsi.mjs +1 -0
  17. package/dist/packem_shared/sendJson-CnJbUMZT.cjs +1 -0
  18. package/dist/packem_shared/withZod-B5rDrse4.mjs +1 -0
  19. package/dist/packem_shared/withZod-CQOb0zZR.cjs +1 -0
  20. package/package.json +40 -40
  21. package/dist/adapter/express.d.cts +0 -7
  22. package/dist/adapter/express.d.mts +0 -7
  23. package/dist/adapter/express.d.ts +0 -7
  24. package/dist/adapter/with-zod.d.cts +0 -8
  25. package/dist/adapter/with-zod.d.mts +0 -8
  26. package/dist/adapter/with-zod.d.ts +0 -8
  27. package/dist/edge.d.cts +0 -30
  28. package/dist/edge.d.mts +0 -30
  29. package/dist/edge.d.ts +0 -30
  30. package/dist/node.d.cts +0 -33
  31. package/dist/node.d.mts +0 -33
  32. package/dist/node.d.ts +0 -33
  33. package/dist/packem_shared/EdgeRouter-B-e2l9un.cjs +0 -96
  34. package/dist/packem_shared/EdgeRouter-CdtQHTwm.mjs +0 -90
  35. package/dist/packem_shared/Router-ChnTdYfl.mjs +0 -135
  36. package/dist/packem_shared/Router-Eg_OPxIL.cjs +0 -139
  37. package/dist/packem_shared/createRouter-C8hDVJcV.cjs +0 -102
  38. package/dist/packem_shared/createRouter-_G1XhaP4.mjs +0 -96
  39. package/dist/packem_shared/expressWrapper-CTExfWvM.cjs +0 -10
  40. package/dist/packem_shared/expressWrapper-spfs58is.mjs +0 -8
  41. package/dist/packem_shared/sendJson-DwLYLDbt.mjs +0 -7
  42. package/dist/packem_shared/sendJson-pJY2tT2n.cjs +0 -9
  43. package/dist/packem_shared/withZod-HYgoC7AX.mjs +0 -18
  44. package/dist/packem_shared/withZod-ULTsdyM5.cjs +0 -24
  45. package/dist/router.d.cts +0 -21
  46. package/dist/router.d.mts +0 -21
  47. package/dist/router.d.ts +0 -21
  48. package/dist/utils/send-json.d.cts +0 -9
  49. package/dist/utils/send-json.d.mts +0 -9
  50. package/dist/utils/send-json.d.ts +0 -9
@@ -0,0 +1 @@
1
+ "use strict";var f=Object.defineProperty;var a=(t,e)=>f(t,"name",{value:e,configurable:!0});const p=require("http-errors"),l=require("zod"),m=a(t=>t&&typeof t=="object"&&"default"in t?t.default:t,"_interopDefaultCompat");function d(t){if(t&&typeof t=="object"&&"default"in t)return t;const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t)for(const n in t)e[n]=t[n];return e.default=t,e}a(d,"_interopNamespaceCompat");const y=m(p),b=d(l);var j=Object.defineProperty,_=a((t,e)=>j(t,"name",{value:e,configurable:!0}),"a");const g=_((t,e)=>async(n,s,i)=>{let r;try{r=await t.parseAsync(n)}catch(o){const u=o instanceof b.ZodError&&typeof o.format=="function"?o.issues.map(c=>`${c.path.join("/")} - ${c.message}`).join("/n"):o.message;throw y(422,u)}return e(r,s,i)},"withZod");module.exports=g;
package/package.json CHANGED
@@ -1,24 +1,29 @@
1
1
  {
2
2
  "name": "@visulima/connect",
3
- "version": "4.0.0-alpha.2",
3
+ "version": "4.0.0-alpha.20",
4
4
  "description": "The minimal router and middleware layer for Next.js, Micro, Vercel, or Node.js http/http2 with support for zod validation.",
5
5
  "keywords": [
6
- "visulima",
6
+ "connect",
7
+ "http",
8
+ "http2",
7
9
  "javascript",
8
- "nextjs",
9
10
  "middleware",
11
+ "nextjs",
12
+ "node",
10
13
  "router",
11
- "connect",
12
14
  "vercel",
13
- "node",
14
- "http",
15
- "http2",
15
+ "visulima",
16
16
  "zod"
17
17
  ],
18
- "homepage": "https://www.visulima.com/docs/package/connect",
18
+ "homepage": "https://visulima.com/packages/connect/",
19
19
  "bugs": {
20
20
  "url": "https://github.com/visulima/visulima/issues"
21
21
  },
22
+ "license": "MIT",
23
+ "author": {
24
+ "name": "Daniel Bannert",
25
+ "email": "d.bannert@anolilab.de"
26
+ },
22
27
  "repository": {
23
28
  "type": "git",
24
29
  "url": "https://github.com/visulima/visulima.git",
@@ -34,13 +39,29 @@
34
39
  "url": "https://anolilab.com/support"
35
40
  }
36
41
  ],
37
- "license": "MIT",
38
- "author": {
39
- "name": "Daniel Bannert",
40
- "email": "d.bannert@anolilab.de"
41
- },
42
- "sideEffects": false,
42
+ "files": [
43
+ "dist/**",
44
+ "README.md",
45
+ "CHANGELOG.md",
46
+ "LICENSE.md"
47
+ ],
48
+ "os": [
49
+ "darwin",
50
+ "linux",
51
+ "win32"
52
+ ],
43
53
  "type": "module",
54
+ "sideEffects": false,
55
+ "main": "dist/index.cjs",
56
+ "module": "dist/index.mjs",
57
+ "types": "dist/index.d.ts",
58
+ "typesVersions": {
59
+ ">=5.0": {
60
+ ".": [
61
+ "./dist/index.d.ts"
62
+ ]
63
+ }
64
+ },
44
65
  "exports": {
45
66
  ".": {
46
67
  "import": {
@@ -54,39 +75,18 @@
54
75
  },
55
76
  "./package.json": "./package.json"
56
77
  },
57
- "main": "dist/index.cjs",
58
- "module": "dist/index.mjs",
59
- "types": "dist/index.d.ts",
60
- "typesVersions": {
61
- ">=5.0": {
62
- ".": [
63
- "./dist/index.d.ts"
64
- ]
65
- }
78
+ "publishConfig": {
79
+ "access": "public",
80
+ "provenance": true
66
81
  },
67
- "files": [
68
- "dist/**",
69
- "README.md",
70
- "CHANGELOG.md",
71
- "LICENSE.md"
72
- ],
73
82
  "dependencies": {
74
83
  "http-errors": "^2.0.1",
75
84
  "regexparam": "^3.0.0"
76
85
  },
77
86
  "peerDependencies": {
78
- "zod": "^3.22.5"
87
+ "zod": "4.4.3"
79
88
  },
80
89
  "engines": {
81
- "node": ">=22.13 <=25.x"
82
- },
83
- "os": [
84
- "darwin",
85
- "linux",
86
- "win32"
87
- ],
88
- "publishConfig": {
89
- "access": "public",
90
- "provenance": true
90
+ "node": "^22.14.0 || >=24.10.0"
91
91
  }
92
92
  }
@@ -1,7 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { RequestHandler } from "../node.d.cts";
3
- import type { Nextable } from "../types.d.d.cts";
4
- type NextFunction = (error?: any) => void;
5
- declare const expressWrapper: <Request extends IncomingMessage, Response extends ServerResponse>(function_: ExpressRequestHandler<Request, Response>) => Nextable<RequestHandler<Request, Response>>;
6
- export type ExpressRequestHandler<Request, Response> = (request: Request, response: Response, next: NextFunction) => void;
7
- export = expressWrapper;
@@ -1,7 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { RequestHandler } from "../node.d.mts";
3
- import type { Nextable } from "../types.d.d.mts";
4
- type NextFunction = (error?: any) => void;
5
- declare const expressWrapper: <Request extends IncomingMessage, Response extends ServerResponse>(function_: ExpressRequestHandler<Request, Response>) => Nextable<RequestHandler<Request, Response>>;
6
- export type ExpressRequestHandler<Request, Response> = (request: Request, response: Response, next: NextFunction) => void;
7
- export default expressWrapper;
@@ -1,7 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { RequestHandler } from "../node.d.ts";
3
- import type { Nextable } from "../types.d.d.ts";
4
- type NextFunction = (error?: any) => void;
5
- declare const expressWrapper: <Request extends IncomingMessage, Response extends ServerResponse>(function_: ExpressRequestHandler<Request, Response>) => Nextable<RequestHandler<Request, Response>>;
6
- export type ExpressRequestHandler<Request, Response> = (request: Request, response: Response, next: NextFunction) => void;
7
- export = expressWrapper;
@@ -1,8 +0,0 @@
1
- import type { ZodObject } from "zod";
2
- import type { Nextable, NextHandler } from "../types.d.d.cts";
3
- declare const withZod: <Request, Response, Handler extends Nextable<any>, Schema extends ZodObject<{
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>;
8
- export = withZod;
@@ -1,8 +0,0 @@
1
- import type { ZodObject } from "zod";
2
- import type { Nextable, NextHandler } from "../types.d.d.mts";
3
- declare const withZod: <Request, Response, Handler extends Nextable<any>, Schema extends ZodObject<{
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>;
8
- export default withZod;
@@ -1,8 +0,0 @@
1
- import type { ZodObject } from "zod";
2
- import type { Nextable, NextHandler } from "../types.d.d.ts";
3
- declare const withZod: <Request, Response, Handler extends Nextable<any>, Schema extends ZodObject<{
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>;
8
- export = withZod;
package/dist/edge.d.cts DELETED
@@ -1,30 +0,0 @@
1
- import type { ZodObject } from "zod";
2
- import type { Route } from "./router.d.cts";
3
- import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.cts";
4
- export declare const getPathname: (request: Request & {
5
- nextUrl?: URL;
6
- }) => string;
7
- export type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response | void>;
8
- export declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends ZodObject<any> = ZodObject<any>> {
9
- all: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
10
- connect: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
11
- delete: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
12
- get: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
13
- head: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
14
- options: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
15
- patch: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
16
- post: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
17
- put: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
18
- trace: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
19
- private readonly onError;
20
- private readonly onNoMatch;
21
- private router;
22
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, RResponse, Route<Nextable<FunctionLike>>[]>>);
23
- clone(): EdgeRouter<R, Context, RResponse, Schema>;
24
- handler(): (request: R, context_: Context) => Promise<any> | ReturnType<FunctionLike> | ValueOrPromise<RResponse>;
25
- run(request: R, context_: Context): Promise<unknown>;
26
- use(base: EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>> | RouteMatch, ...fns: (EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>>)[]): this;
27
- private add;
28
- private prepareRequest;
29
- }
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 DELETED
@@ -1,30 +0,0 @@
1
- import type { ZodObject } from "zod";
2
- import type { Route } from "./router.d.mts";
3
- import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.mts";
4
- export declare const getPathname: (request: Request & {
5
- nextUrl?: URL;
6
- }) => string;
7
- export type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response | void>;
8
- export declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends ZodObject<any> = ZodObject<any>> {
9
- all: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
10
- connect: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
11
- delete: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
12
- get: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
13
- head: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
14
- options: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
15
- patch: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
16
- post: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
17
- put: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
18
- trace: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
19
- private readonly onError;
20
- private readonly onNoMatch;
21
- private router;
22
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, RResponse, Route<Nextable<FunctionLike>>[]>>);
23
- clone(): EdgeRouter<R, Context, RResponse, Schema>;
24
- handler(): (request: R, context_: Context) => Promise<any> | ReturnType<FunctionLike> | ValueOrPromise<RResponse>;
25
- run(request: R, context_: Context): Promise<unknown>;
26
- use(base: EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>> | RouteMatch, ...fns: (EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>>)[]): this;
27
- private add;
28
- private prepareRequest;
29
- }
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 DELETED
@@ -1,30 +0,0 @@
1
- import type { ZodObject } from "zod";
2
- import type { Route } from "./router.d.ts";
3
- import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.ts";
4
- export declare const getPathname: (request: Request & {
5
- nextUrl?: URL;
6
- }) => string;
7
- export type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response | void>;
8
- export declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends ZodObject<any> = ZodObject<any>> {
9
- all: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
10
- connect: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
11
- delete: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
12
- get: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
13
- head: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
14
- options: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
15
- patch: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
16
- post: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
17
- put: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
18
- trace: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
19
- private readonly onError;
20
- private readonly onNoMatch;
21
- private router;
22
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, RResponse, Route<Nextable<FunctionLike>>[]>>);
23
- clone(): EdgeRouter<R, Context, RResponse, Schema>;
24
- handler(): (request: R, context_: Context) => Promise<any> | ReturnType<FunctionLike> | ValueOrPromise<RResponse>;
25
- run(request: R, context_: Context): Promise<unknown>;
26
- use(base: EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>> | RouteMatch, ...fns: (EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>>)[]): this;
27
- private add;
28
- private prepareRequest;
29
- }
30
- export declare const createEdgeRouter: <R extends Request, Context>(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, Response, Route<Nextable<FunctionLike>>[]>>) => EdgeRouter<R, Context>;
package/dist/node.d.cts DELETED
@@ -1,33 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { ZodObject } from "zod";
3
- import type { Route } from "./router.d.cts";
4
- import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.cts";
5
- export declare const getPathname: (url: string) => string;
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<never>> {
8
- all: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
9
- connect: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
10
- delete: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
11
- get: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
12
- head: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
13
- options: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
14
- patch: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
15
- post: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
16
- put: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
17
- trace: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
18
- private readonly onError;
19
- private readonly onNoMatch;
20
- private router;
21
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>);
22
- clone(): NodeRouter<Request, Response, Schema>;
23
- handler(): (request: Request, response: Response) => Promise<void>;
24
- run(request: Request, response: Response): Promise<unknown>;
25
- use(base: Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema> | RouteMatch, ...fns: (Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema>)[]): this;
26
- private add;
27
- private prepareRequest;
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>;
package/dist/node.d.mts DELETED
@@ -1,33 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { ZodObject } from "zod";
3
- import type { Route } from "./router.d.mts";
4
- import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.mts";
5
- export declare const getPathname: (url: string) => string;
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<never>> {
8
- all: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
9
- connect: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
10
- delete: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
11
- get: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
12
- head: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
13
- options: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
14
- patch: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
15
- post: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
16
- put: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
17
- trace: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
18
- private readonly onError;
19
- private readonly onNoMatch;
20
- private router;
21
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>);
22
- clone(): NodeRouter<Request, Response, Schema>;
23
- handler(): (request: Request, response: Response) => Promise<void>;
24
- run(request: Request, response: Response): Promise<unknown>;
25
- use(base: Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema> | RouteMatch, ...fns: (Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema>)[]): this;
26
- private add;
27
- private prepareRequest;
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>;
package/dist/node.d.ts DELETED
@@ -1,33 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { ZodObject } from "zod";
3
- import type { Route } from "./router.d.ts";
4
- import type { FunctionLike, HandlerOptions, Nextable, RouteMatch, RoutesExtendedRequestHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.ts";
5
- export declare const getPathname: (url: string) => string;
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<never>> {
8
- all: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
9
- connect: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
10
- delete: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
11
- get: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
12
- head: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
13
- options: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
14
- patch: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
15
- post: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
16
- put: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
17
- trace: RouteShortcutMethod<this, Schema, RequestHandler<Request, Response>>;
18
- private readonly onError;
19
- private readonly onNoMatch;
20
- private router;
21
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>);
22
- clone(): NodeRouter<Request, Response, Schema>;
23
- handler(): (request: Request, response: Response) => Promise<void>;
24
- run(request: Request, response: Response): Promise<unknown>;
25
- use(base: Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema> | RouteMatch, ...fns: (Nextable<RequestHandler<Request, Response>> | NodeRouter<Request, Response, Schema>)[]): this;
26
- private add;
27
- private prepareRequest;
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>;
@@ -1,96 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
-
5
- const withZod = require('./withZod-ULTsdyM5.cjs');
6
- const Router = require('./Router-Eg_OPxIL.cjs');
7
-
8
- const onNoMatch = async (request) => new Response(request.method === "HEAD" ? null : `Route ${request.method} ${request.url} not found`, { status: 404 });
9
- const onError = async (error) => {
10
- console.error(error);
11
- return new Response("Internal Server Error", { status: 500 });
12
- };
13
- const getPathname = (request) => (
14
- // eslint-disable-next-line compat/compat
15
- (request.nextUrl ?? new URL(request.url)).pathname
16
- );
17
- class EdgeRouter {
18
- all = this.add.bind(this, "");
19
- connect = this.add.bind(this, "CONNECT");
20
- delete = this.add.bind(this, "DELETE");
21
- get = this.add.bind(this, "GET");
22
- head = this.add.bind(this, "HEAD");
23
- options = this.add.bind(this, "OPTIONS");
24
- patch = this.add.bind(this, "PATCH");
25
- post = this.add.bind(this, "POST");
26
- put = this.add.bind(this, "PUT");
27
- trace = this.add.bind(this, "TRACE");
28
- onError;
29
- onNoMatch;
30
- router = new Router.Router();
31
- constructor(options = {}) {
32
- this.onNoMatch = options.onNoMatch ?? onNoMatch;
33
- this.onError = options.onError ?? onError;
34
- }
35
- clone() {
36
- const r = new EdgeRouter({ onError: this.onError, onNoMatch: this.onNoMatch });
37
- r.router = this.router.clone();
38
- return r;
39
- }
40
- handler() {
41
- const { routes } = this.router;
42
- return async (request, context_) => {
43
- const result = this.router.find(request.method, getPathname(request));
44
- this.prepareRequest(request, result);
45
- try {
46
- return await (result.fns.length === 0 || result.middleOnly ? this.onNoMatch(request, context_, routes) : Router.Router.exec(result.fns, request, context_));
47
- } catch (error) {
48
- return await this.onError(error, request, context_, routes);
49
- }
50
- };
51
- }
52
- async run(request, context_) {
53
- const result = this.router.find(request.method, getPathname(request));
54
- if (result.fns.length === 0) {
55
- return;
56
- }
57
- this.prepareRequest(request, result);
58
- return await Router.Router.exec(result.fns, request, context_);
59
- }
60
- use(base, ...fns) {
61
- if (typeof base === "function" || base instanceof EdgeRouter) {
62
- fns.unshift(base);
63
- base = "/";
64
- }
65
- this.router.use(base, ...fns.map((function_) => function_ instanceof EdgeRouter ? function_.router : function_));
66
- return this;
67
- }
68
- add(method, routeOrFunction, zodOrRouteOrFunction, ...fns) {
69
- if (typeof routeOrFunction === "string" && typeof zodOrRouteOrFunction === "function") {
70
- fns = [zodOrRouteOrFunction];
71
- } else if (typeof zodOrRouteOrFunction === "object") {
72
- if (typeof routeOrFunction === "function") {
73
- fns = [withZod(zodOrRouteOrFunction, routeOrFunction)];
74
- } else {
75
- fns = fns.map((function_) => withZod(zodOrRouteOrFunction, function_));
76
- }
77
- } else if (typeof zodOrRouteOrFunction === "function") {
78
- fns = [zodOrRouteOrFunction];
79
- }
80
- this.router.add(method, routeOrFunction, ...fns);
81
- return this;
82
- }
83
- // eslint-disable-next-line class-methods-use-this
84
- prepareRequest(request, findResult) {
85
- request.params = {
86
- ...findResult.params,
87
- ...request.params
88
- // original params will take precedence
89
- };
90
- }
91
- }
92
- const createEdgeRouter = (options = {}) => new EdgeRouter(options);
93
-
94
- exports.EdgeRouter = EdgeRouter;
95
- exports.createEdgeRouter = createEdgeRouter;
96
- exports.getPathname = getPathname;
@@ -1,90 +0,0 @@
1
- import withZod from './withZod-HYgoC7AX.mjs';
2
- import { Router } from './Router-ChnTdYfl.mjs';
3
-
4
- const onNoMatch = async (request) => new Response(request.method === "HEAD" ? null : `Route ${request.method} ${request.url} not found`, { status: 404 });
5
- const onError = async (error) => {
6
- console.error(error);
7
- return new Response("Internal Server Error", { status: 500 });
8
- };
9
- const getPathname = (request) => (
10
- // eslint-disable-next-line compat/compat
11
- (request.nextUrl ?? new URL(request.url)).pathname
12
- );
13
- class EdgeRouter {
14
- all = this.add.bind(this, "");
15
- connect = this.add.bind(this, "CONNECT");
16
- delete = this.add.bind(this, "DELETE");
17
- get = this.add.bind(this, "GET");
18
- head = this.add.bind(this, "HEAD");
19
- options = this.add.bind(this, "OPTIONS");
20
- patch = this.add.bind(this, "PATCH");
21
- post = this.add.bind(this, "POST");
22
- put = this.add.bind(this, "PUT");
23
- trace = this.add.bind(this, "TRACE");
24
- onError;
25
- onNoMatch;
26
- router = new Router();
27
- constructor(options = {}) {
28
- this.onNoMatch = options.onNoMatch ?? onNoMatch;
29
- this.onError = options.onError ?? onError;
30
- }
31
- clone() {
32
- const r = new EdgeRouter({ onError: this.onError, onNoMatch: this.onNoMatch });
33
- r.router = this.router.clone();
34
- return r;
35
- }
36
- handler() {
37
- const { routes } = this.router;
38
- return async (request, context_) => {
39
- const result = this.router.find(request.method, getPathname(request));
40
- this.prepareRequest(request, result);
41
- try {
42
- return await (result.fns.length === 0 || result.middleOnly ? this.onNoMatch(request, context_, routes) : Router.exec(result.fns, request, context_));
43
- } catch (error) {
44
- return await this.onError(error, request, context_, routes);
45
- }
46
- };
47
- }
48
- async run(request, context_) {
49
- const result = this.router.find(request.method, getPathname(request));
50
- if (result.fns.length === 0) {
51
- return;
52
- }
53
- this.prepareRequest(request, result);
54
- return await Router.exec(result.fns, request, context_);
55
- }
56
- use(base, ...fns) {
57
- if (typeof base === "function" || base instanceof EdgeRouter) {
58
- fns.unshift(base);
59
- base = "/";
60
- }
61
- this.router.use(base, ...fns.map((function_) => function_ instanceof EdgeRouter ? function_.router : function_));
62
- return this;
63
- }
64
- add(method, routeOrFunction, zodOrRouteOrFunction, ...fns) {
65
- if (typeof routeOrFunction === "string" && typeof zodOrRouteOrFunction === "function") {
66
- fns = [zodOrRouteOrFunction];
67
- } else if (typeof zodOrRouteOrFunction === "object") {
68
- if (typeof routeOrFunction === "function") {
69
- fns = [withZod(zodOrRouteOrFunction, routeOrFunction)];
70
- } else {
71
- fns = fns.map((function_) => withZod(zodOrRouteOrFunction, function_));
72
- }
73
- } else if (typeof zodOrRouteOrFunction === "function") {
74
- fns = [zodOrRouteOrFunction];
75
- }
76
- this.router.add(method, routeOrFunction, ...fns);
77
- return this;
78
- }
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
- }
88
- const createEdgeRouter = (options = {}) => new EdgeRouter(options);
89
-
90
- export { EdgeRouter, createEdgeRouter, getPathname };