@visulima/connect 3.0.25 → 3.0.26

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 CHANGED
@@ -1,3 +1,14 @@
1
+ ## @visulima/connect [3.0.26](https://github.com/visulima/visulima/compare/@visulima/connect@3.0.25...@visulima/connect@3.0.26) (2025-11-12)
2
+
3
+ ### Bug Fixes
4
+
5
+ * update package configurations and TypeScript definitions ([b59aa59](https://github.com/visulima/visulima/commit/b59aa59dac1508216b944f4b917fb4a7ab1f70a4))
6
+
7
+ ### Miscellaneous Chores
8
+
9
+ * Add jsr file to all packages for release ([#565](https://github.com/visulima/visulima/issues/565)) ([ec91652](https://github.com/visulima/visulima/commit/ec91652b4e4112adf14ba152c1239a7703ba425a))
10
+ * update license files and clean up TypeScript definitions ([fe668cc](https://github.com/visulima/visulima/commit/fe668cc26de23591d4df54a0954455ebbe31b22d))
11
+
1
12
  ## @visulima/connect [3.0.25](https://github.com/visulima/visulima/compare/@visulima/connect@3.0.24...@visulima/connect@3.0.25) (2025-11-07)
2
13
 
3
14
  ### Bug Fixes
@@ -0,0 +1,7 @@
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;
@@ -0,0 +1,7 @@
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;
@@ -0,0 +1,7 @@
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;
@@ -0,0 +1,8 @@
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;
@@ -0,0 +1,8 @@
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;
@@ -0,0 +1,8 @@
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;
@@ -0,0 +1,30 @@
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>;
@@ -0,0 +1,30 @@
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 ADDED
@@ -0,0 +1,30 @@
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/index.d.cts CHANGED
@@ -1,128 +1,12 @@
1
- import { IncomingMessage, ServerResponse } from 'node:http';
2
- import { ZodObject } from 'zod';
3
-
4
- type HttpMethod = "CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE";
5
-
6
- type FunctionLike = (...arguments_: any[]) => any;
7
-
8
- type RouteMatch = RegExp | string;
9
-
10
- type ValueOrPromise<T> = Promise<T> | T;
11
-
12
- type NextHandler = () => ValueOrPromise<any>;
13
-
14
- type Nextable<H extends FunctionLike> = (...arguments_: [...Parameters<H>, NextHandler]) => ValueOrPromise<any>;
15
-
16
- interface FindResult<H extends FunctionLike> {
17
- fns: Nextable<H>[];
18
- middleOnly: boolean;
19
- params: Record<string, string>;
20
- }
21
-
22
- type RoutesExtendedRequestHandler<Request extends object, Context, RResponse, Routes> = (
23
- request: Request,
24
- response: Context,
25
- routes: Routes,
26
- // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
27
- ) => ValueOrPromise<RResponse | void>;
28
-
29
- interface HandlerOptions<Handler extends FunctionLike> {
30
- onError?: (error: unknown, ...arguments_: Parameters<Handler>) => ReturnType<Handler>;
31
- onNoMatch?: Handler;
32
- }
33
-
34
- type RouteShortcutMethod<This, Schema extends ZodObject<any>, H extends FunctionLike> = (
35
- route: Nextable<H> | RouteMatch,
36
- zodSchemaOrRouteOrFns?: Nextable<H> | RouteMatch | Schema | string,
37
- ...fns: Nextable<H>[]
38
- ) => This;
39
-
40
- type Route<H> = {
41
- fns: (H | Router<H extends FunctionLike ? H : never>)[];
42
- isMiddleware: boolean;
43
- method: HttpMethod | "";
44
- } & ({
45
- keys: string[] | false;
46
- pattern: RegExp;
47
- } | {
48
- matchAll: true;
49
- });
50
- declare class Router<H extends FunctionLike> {
51
- base: string;
52
- routes: Route<Nextable<H>>[];
53
- static exec<FL extends FunctionLike>(fns: (Nextable<FL> | undefined)[], ...arguments_: Parameters<FL>): Promise<any>;
54
- constructor(base?: string, routes?: Route<Nextable<H>>[]);
55
- add(method: HttpMethod | "", route: Nextable<H> | RouteMatch, ...fns: Nextable<H>[]): this;
56
- clone(base?: string): Router<H>;
57
- find(method: HttpMethod, pathname: string): FindResult<H>;
58
- use(base: Nextable<H> | RouteMatch | Router<H>, ...fns: (Nextable<H> | Router<H>)[]): this;
59
- }
60
-
61
- type RequestHandler$1<Request extends IncomingMessage, Response extends ServerResponse> = (request: Request, response: Response) => ValueOrPromise<void>;
62
- declare class NodeRouter<Request extends IncomingMessage = IncomingMessage, Response extends ServerResponse = ServerResponse, Schema extends ZodObject<any> = ZodObject<never>> {
63
- all: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
64
- connect: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
65
- delete: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
66
- get: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
67
- head: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
68
- options: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
69
- patch: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
70
- post: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
71
- put: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
72
- trace: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
73
- private readonly onError;
74
- private readonly onNoMatch;
75
- private router;
76
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>);
77
- clone(): NodeRouter<Request, Response, Schema>;
78
- handler(): (request: Request, response: Response) => Promise<void>;
79
- run(request: Request, response: Response): Promise<unknown>;
80
- use(base: Nextable<RequestHandler$1<Request, Response>> | NodeRouter<Request, Response, Schema> | RouteMatch, ...fns: (Nextable<RequestHandler$1<Request, Response>> | NodeRouter<Request, Response, Schema>)[]): this;
81
- private add;
82
- private prepareRequest;
83
- }
84
- declare const createRouter: <Request extends IncomingMessage, Response extends ServerResponse, Schema extends ZodObject<any> = ZodObject<{
85
- body?: ZodObject<any>;
86
- headers?: ZodObject<any>;
87
- query?: ZodObject<any>;
88
- }>>(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>) => NodeRouter<Request, Response, Schema>;
89
-
90
- type NextFunction = (error?: any) => void;
91
- declare const expressWrapper: <Request extends IncomingMessage, Response extends ServerResponse>(function_: ExpressRequestHandler<Request, Response>) => Nextable<RequestHandler$1<Request, Response>>;
92
- type ExpressRequestHandler<Request, Response> = (request: Request, response: Response, next: NextFunction) => void;
93
-
94
- declare const withZod: <Request, Response, Handler extends Nextable<any>, Schema extends ZodObject<{
95
- body?: ZodObject<any>;
96
- headers?: ZodObject<any>;
97
- query?: ZodObject<any>;
98
- }>>(schema: Schema, handler: Handler) => (request: Request, response: Response, next: NextHandler) => Promise<Response>;
99
-
100
- type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response | void>;
101
- declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends ZodObject<any> = ZodObject<any>> {
102
- all: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
103
- connect: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
104
- delete: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
105
- get: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
106
- head: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
107
- options: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
108
- patch: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
109
- post: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
110
- put: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
111
- trace: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
112
- private readonly onError;
113
- private readonly onNoMatch;
114
- private router;
115
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, RResponse, Route<Nextable<FunctionLike>>[]>>);
116
- clone(): EdgeRouter<R, Context, RResponse, Schema>;
117
- handler(): (request: R, context_: Context) => Promise<any> | ReturnType<FunctionLike> | ValueOrPromise<RResponse>;
118
- run(request: R, context_: Context): Promise<unknown>;
119
- use(base: EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>> | RouteMatch, ...fns: (EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>>)[]): this;
120
- private add;
121
- private prepareRequest;
122
- }
123
- declare const createEdgeRouter: <R extends Request, Context>(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, Response, Route<Nextable<FunctionLike>>[]>>) => EdgeRouter<R, Context>;
124
-
125
- declare const sendJson: (response: ServerResponse, statusCode: number, jsonBody: unknown) => void;
126
-
127
- export { EdgeRouter, NodeRouter, Router, createEdgeRouter, createRouter as createNodeRouter, createRouter, expressWrapper, sendJson, withZod };
128
- export type { RequestHandler as EdgeRequestHandler, ExpressRequestHandler, FindResult, FunctionLike, HandlerOptions, HttpMethod, NextHandler, Nextable, RequestHandler$1 as NodeRequestHandler, Route, RouteShortcutMethod, ValueOrPromise };
1
+ export type { ExpressRequestHandler } from "./adapter/express.d.cts";
2
+ export { default as expressWrapper } from "./adapter/express.d.cts";
3
+ export { default as withZod } from "./adapter/with-zod.d.cts";
4
+ export type { RequestHandler as EdgeRequestHandler } from "./edge.d.cts";
5
+ export { createEdgeRouter, EdgeRouter } from "./edge.d.cts";
6
+ export type { RequestHandler as NodeRequestHandler } from "./node.d.cts";
7
+ export { createRouter } from "./node.d.cts";
8
+ export { createRouter as createNodeRouter, NodeRouter } from "./node.d.cts";
9
+ export type { Route } from "./router.d.cts";
10
+ export { Router } from "./router.d.cts";
11
+ export type { FindResult, FunctionLike, HandlerOptions, HttpMethod, Nextable, NextHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.cts";
12
+ export { default as sendJson } from "./utils/send-json.d.cts";
package/dist/index.d.mts CHANGED
@@ -1,128 +1,12 @@
1
- import { IncomingMessage, ServerResponse } from 'node:http';
2
- import { ZodObject } from 'zod';
3
-
4
- type HttpMethod = "CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE";
5
-
6
- type FunctionLike = (...arguments_: any[]) => any;
7
-
8
- type RouteMatch = RegExp | string;
9
-
10
- type ValueOrPromise<T> = Promise<T> | T;
11
-
12
- type NextHandler = () => ValueOrPromise<any>;
13
-
14
- type Nextable<H extends FunctionLike> = (...arguments_: [...Parameters<H>, NextHandler]) => ValueOrPromise<any>;
15
-
16
- interface FindResult<H extends FunctionLike> {
17
- fns: Nextable<H>[];
18
- middleOnly: boolean;
19
- params: Record<string, string>;
20
- }
21
-
22
- type RoutesExtendedRequestHandler<Request extends object, Context, RResponse, Routes> = (
23
- request: Request,
24
- response: Context,
25
- routes: Routes,
26
- // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
27
- ) => ValueOrPromise<RResponse | void>;
28
-
29
- interface HandlerOptions<Handler extends FunctionLike> {
30
- onError?: (error: unknown, ...arguments_: Parameters<Handler>) => ReturnType<Handler>;
31
- onNoMatch?: Handler;
32
- }
33
-
34
- type RouteShortcutMethod<This, Schema extends ZodObject<any>, H extends FunctionLike> = (
35
- route: Nextable<H> | RouteMatch,
36
- zodSchemaOrRouteOrFns?: Nextable<H> | RouteMatch | Schema | string,
37
- ...fns: Nextable<H>[]
38
- ) => This;
39
-
40
- type Route<H> = {
41
- fns: (H | Router<H extends FunctionLike ? H : never>)[];
42
- isMiddleware: boolean;
43
- method: HttpMethod | "";
44
- } & ({
45
- keys: string[] | false;
46
- pattern: RegExp;
47
- } | {
48
- matchAll: true;
49
- });
50
- declare class Router<H extends FunctionLike> {
51
- base: string;
52
- routes: Route<Nextable<H>>[];
53
- static exec<FL extends FunctionLike>(fns: (Nextable<FL> | undefined)[], ...arguments_: Parameters<FL>): Promise<any>;
54
- constructor(base?: string, routes?: Route<Nextable<H>>[]);
55
- add(method: HttpMethod | "", route: Nextable<H> | RouteMatch, ...fns: Nextable<H>[]): this;
56
- clone(base?: string): Router<H>;
57
- find(method: HttpMethod, pathname: string): FindResult<H>;
58
- use(base: Nextable<H> | RouteMatch | Router<H>, ...fns: (Nextable<H> | Router<H>)[]): this;
59
- }
60
-
61
- type RequestHandler$1<Request extends IncomingMessage, Response extends ServerResponse> = (request: Request, response: Response) => ValueOrPromise<void>;
62
- declare class NodeRouter<Request extends IncomingMessage = IncomingMessage, Response extends ServerResponse = ServerResponse, Schema extends ZodObject<any> = ZodObject<never>> {
63
- all: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
64
- connect: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
65
- delete: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
66
- get: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
67
- head: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
68
- options: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
69
- patch: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
70
- post: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
71
- put: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
72
- trace: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
73
- private readonly onError;
74
- private readonly onNoMatch;
75
- private router;
76
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>);
77
- clone(): NodeRouter<Request, Response, Schema>;
78
- handler(): (request: Request, response: Response) => Promise<void>;
79
- run(request: Request, response: Response): Promise<unknown>;
80
- use(base: Nextable<RequestHandler$1<Request, Response>> | NodeRouter<Request, Response, Schema> | RouteMatch, ...fns: (Nextable<RequestHandler$1<Request, Response>> | NodeRouter<Request, Response, Schema>)[]): this;
81
- private add;
82
- private prepareRequest;
83
- }
84
- declare const createRouter: <Request extends IncomingMessage, Response extends ServerResponse, Schema extends ZodObject<any> = ZodObject<{
85
- body?: ZodObject<any>;
86
- headers?: ZodObject<any>;
87
- query?: ZodObject<any>;
88
- }>>(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>) => NodeRouter<Request, Response, Schema>;
89
-
90
- type NextFunction = (error?: any) => void;
91
- declare const expressWrapper: <Request extends IncomingMessage, Response extends ServerResponse>(function_: ExpressRequestHandler<Request, Response>) => Nextable<RequestHandler$1<Request, Response>>;
92
- type ExpressRequestHandler<Request, Response> = (request: Request, response: Response, next: NextFunction) => void;
93
-
94
- declare const withZod: <Request, Response, Handler extends Nextable<any>, Schema extends ZodObject<{
95
- body?: ZodObject<any>;
96
- headers?: ZodObject<any>;
97
- query?: ZodObject<any>;
98
- }>>(schema: Schema, handler: Handler) => (request: Request, response: Response, next: NextHandler) => Promise<Response>;
99
-
100
- type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response | void>;
101
- declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends ZodObject<any> = ZodObject<any>> {
102
- all: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
103
- connect: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
104
- delete: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
105
- get: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
106
- head: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
107
- options: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
108
- patch: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
109
- post: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
110
- put: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
111
- trace: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
112
- private readonly onError;
113
- private readonly onNoMatch;
114
- private router;
115
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, RResponse, Route<Nextable<FunctionLike>>[]>>);
116
- clone(): EdgeRouter<R, Context, RResponse, Schema>;
117
- handler(): (request: R, context_: Context) => Promise<any> | ReturnType<FunctionLike> | ValueOrPromise<RResponse>;
118
- run(request: R, context_: Context): Promise<unknown>;
119
- use(base: EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>> | RouteMatch, ...fns: (EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>>)[]): this;
120
- private add;
121
- private prepareRequest;
122
- }
123
- declare const createEdgeRouter: <R extends Request, Context>(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, Response, Route<Nextable<FunctionLike>>[]>>) => EdgeRouter<R, Context>;
124
-
125
- declare const sendJson: (response: ServerResponse, statusCode: number, jsonBody: unknown) => void;
126
-
127
- export { EdgeRouter, NodeRouter, Router, createEdgeRouter, createRouter as createNodeRouter, createRouter, expressWrapper, sendJson, withZod };
128
- export type { RequestHandler as EdgeRequestHandler, ExpressRequestHandler, FindResult, FunctionLike, HandlerOptions, HttpMethod, NextHandler, Nextable, RequestHandler$1 as NodeRequestHandler, Route, RouteShortcutMethod, ValueOrPromise };
1
+ export type { ExpressRequestHandler } from "./adapter/express.d.mts";
2
+ export { default as expressWrapper } from "./adapter/express.d.mts";
3
+ export { default as withZod } from "./adapter/with-zod.d.mts";
4
+ export type { RequestHandler as EdgeRequestHandler } from "./edge.d.mts";
5
+ export { createEdgeRouter, EdgeRouter } from "./edge.d.mts";
6
+ export type { RequestHandler as NodeRequestHandler } from "./node.d.mts";
7
+ export { createRouter } from "./node.d.mts";
8
+ export { createRouter as createNodeRouter, NodeRouter } from "./node.d.mts";
9
+ export type { Route } from "./router.d.mts";
10
+ export { Router } from "./router.d.mts";
11
+ export type { FindResult, FunctionLike, HandlerOptions, HttpMethod, Nextable, NextHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.mts";
12
+ export { default as sendJson } from "./utils/send-json.d.mts";
package/dist/index.d.ts CHANGED
@@ -1,128 +1,12 @@
1
- import { IncomingMessage, ServerResponse } from 'node:http';
2
- import { ZodObject } from 'zod';
3
-
4
- type HttpMethod = "CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE";
5
-
6
- type FunctionLike = (...arguments_: any[]) => any;
7
-
8
- type RouteMatch = RegExp | string;
9
-
10
- type ValueOrPromise<T> = Promise<T> | T;
11
-
12
- type NextHandler = () => ValueOrPromise<any>;
13
-
14
- type Nextable<H extends FunctionLike> = (...arguments_: [...Parameters<H>, NextHandler]) => ValueOrPromise<any>;
15
-
16
- interface FindResult<H extends FunctionLike> {
17
- fns: Nextable<H>[];
18
- middleOnly: boolean;
19
- params: Record<string, string>;
20
- }
21
-
22
- type RoutesExtendedRequestHandler<Request extends object, Context, RResponse, Routes> = (
23
- request: Request,
24
- response: Context,
25
- routes: Routes,
26
- // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
27
- ) => ValueOrPromise<RResponse | void>;
28
-
29
- interface HandlerOptions<Handler extends FunctionLike> {
30
- onError?: (error: unknown, ...arguments_: Parameters<Handler>) => ReturnType<Handler>;
31
- onNoMatch?: Handler;
32
- }
33
-
34
- type RouteShortcutMethod<This, Schema extends ZodObject<any>, H extends FunctionLike> = (
35
- route: Nextable<H> | RouteMatch,
36
- zodSchemaOrRouteOrFns?: Nextable<H> | RouteMatch | Schema | string,
37
- ...fns: Nextable<H>[]
38
- ) => This;
39
-
40
- type Route<H> = {
41
- fns: (H | Router<H extends FunctionLike ? H : never>)[];
42
- isMiddleware: boolean;
43
- method: HttpMethod | "";
44
- } & ({
45
- keys: string[] | false;
46
- pattern: RegExp;
47
- } | {
48
- matchAll: true;
49
- });
50
- declare class Router<H extends FunctionLike> {
51
- base: string;
52
- routes: Route<Nextable<H>>[];
53
- static exec<FL extends FunctionLike>(fns: (Nextable<FL> | undefined)[], ...arguments_: Parameters<FL>): Promise<any>;
54
- constructor(base?: string, routes?: Route<Nextable<H>>[]);
55
- add(method: HttpMethod | "", route: Nextable<H> | RouteMatch, ...fns: Nextable<H>[]): this;
56
- clone(base?: string): Router<H>;
57
- find(method: HttpMethod, pathname: string): FindResult<H>;
58
- use(base: Nextable<H> | RouteMatch | Router<H>, ...fns: (Nextable<H> | Router<H>)[]): this;
59
- }
60
-
61
- type RequestHandler$1<Request extends IncomingMessage, Response extends ServerResponse> = (request: Request, response: Response) => ValueOrPromise<void>;
62
- declare class NodeRouter<Request extends IncomingMessage = IncomingMessage, Response extends ServerResponse = ServerResponse, Schema extends ZodObject<any> = ZodObject<never>> {
63
- all: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
64
- connect: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
65
- delete: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
66
- get: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
67
- head: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
68
- options: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
69
- patch: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
70
- post: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
71
- put: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
72
- trace: RouteShortcutMethod<this, Schema, RequestHandler$1<Request, Response>>;
73
- private readonly onError;
74
- private readonly onNoMatch;
75
- private router;
76
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>);
77
- clone(): NodeRouter<Request, Response, Schema>;
78
- handler(): (request: Request, response: Response) => Promise<void>;
79
- run(request: Request, response: Response): Promise<unknown>;
80
- use(base: Nextable<RequestHandler$1<Request, Response>> | NodeRouter<Request, Response, Schema> | RouteMatch, ...fns: (Nextable<RequestHandler$1<Request, Response>> | NodeRouter<Request, Response, Schema>)[]): this;
81
- private add;
82
- private prepareRequest;
83
- }
84
- declare const createRouter: <Request extends IncomingMessage, Response extends ServerResponse, Schema extends ZodObject<any> = ZodObject<{
85
- body?: ZodObject<any>;
86
- headers?: ZodObject<any>;
87
- query?: ZodObject<any>;
88
- }>>(options?: HandlerOptions<RoutesExtendedRequestHandler<Request, Response, Response, Route<Nextable<FunctionLike>>[]>>) => NodeRouter<Request, Response, Schema>;
89
-
90
- type NextFunction = (error?: any) => void;
91
- declare const expressWrapper: <Request extends IncomingMessage, Response extends ServerResponse>(function_: ExpressRequestHandler<Request, Response>) => Nextable<RequestHandler$1<Request, Response>>;
92
- type ExpressRequestHandler<Request, Response> = (request: Request, response: Response, next: NextFunction) => void;
93
-
94
- declare const withZod: <Request, Response, Handler extends Nextable<any>, Schema extends ZodObject<{
95
- body?: ZodObject<any>;
96
- headers?: ZodObject<any>;
97
- query?: ZodObject<any>;
98
- }>>(schema: Schema, handler: Handler) => (request: Request, response: Response, next: NextHandler) => Promise<Response>;
99
-
100
- type RequestHandler<R extends Request, Context> = (request: R, context_: Context) => ValueOrPromise<Response | void>;
101
- declare class EdgeRouter<R extends Request = Request, Context = unknown, RResponse extends Response = Response, Schema extends ZodObject<any> = ZodObject<any>> {
102
- all: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
103
- connect: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
104
- delete: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
105
- get: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
106
- head: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
107
- options: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
108
- patch: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
109
- post: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
110
- put: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
111
- trace: RouteShortcutMethod<this, Schema, RequestHandler<R, Context>>;
112
- private readonly onError;
113
- private readonly onNoMatch;
114
- private router;
115
- constructor(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, RResponse, Route<Nextable<FunctionLike>>[]>>);
116
- clone(): EdgeRouter<R, Context, RResponse, Schema>;
117
- handler(): (request: R, context_: Context) => Promise<any> | ReturnType<FunctionLike> | ValueOrPromise<RResponse>;
118
- run(request: R, context_: Context): Promise<unknown>;
119
- use(base: EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>> | RouteMatch, ...fns: (EdgeRouter<R, Context> | Nextable<RequestHandler<R, Context>>)[]): this;
120
- private add;
121
- private prepareRequest;
122
- }
123
- declare const createEdgeRouter: <R extends Request, Context>(options?: HandlerOptions<RoutesExtendedRequestHandler<R, Context, Response, Route<Nextable<FunctionLike>>[]>>) => EdgeRouter<R, Context>;
124
-
125
- declare const sendJson: (response: ServerResponse, statusCode: number, jsonBody: unknown) => void;
126
-
127
- export { EdgeRouter, NodeRouter, Router, createEdgeRouter, createRouter as createNodeRouter, createRouter, expressWrapper, sendJson, withZod };
128
- export type { RequestHandler as EdgeRequestHandler, ExpressRequestHandler, FindResult, FunctionLike, HandlerOptions, HttpMethod, NextHandler, Nextable, RequestHandler$1 as NodeRequestHandler, Route, RouteShortcutMethod, ValueOrPromise };
1
+ export type { ExpressRequestHandler } from "./adapter/express.d.ts";
2
+ export { default as expressWrapper } from "./adapter/express.d.ts";
3
+ export { default as withZod } from "./adapter/with-zod.d.ts";
4
+ export type { RequestHandler as EdgeRequestHandler } from "./edge.d.ts";
5
+ export { createEdgeRouter, EdgeRouter } from "./edge.d.ts";
6
+ export type { RequestHandler as NodeRequestHandler } from "./node.d.ts";
7
+ export { createRouter } from "./node.d.ts";
8
+ export { createRouter as createNodeRouter, NodeRouter } from "./node.d.ts";
9
+ export type { Route } from "./router.d.ts";
10
+ export { Router } from "./router.d.ts";
11
+ export type { FindResult, FunctionLike, HandlerOptions, HttpMethod, Nextable, NextHandler, RouteShortcutMethod, ValueOrPromise } from "./types.d.d.ts";
12
+ export { default as sendJson } from "./utils/send-json.d.ts";
@@ -0,0 +1,33 @@
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>;
@@ -0,0 +1,33 @@
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 ADDED
@@ -0,0 +1,33 @@
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>;
@@ -0,0 +1,21 @@
1
+ import type { FindResult, FunctionLike, HttpMethod, Nextable, RouteMatch } from "./types.d.d.cts";
2
+ export type Route<H> = {
3
+ fns: (H | Router<H extends FunctionLike ? H : never>)[];
4
+ isMiddleware: boolean;
5
+ method: HttpMethod | "";
6
+ } & ({
7
+ keys: string[] | false;
8
+ pattern: RegExp;
9
+ } | {
10
+ matchAll: true;
11
+ });
12
+ export declare class Router<H extends FunctionLike> {
13
+ base: string;
14
+ routes: Route<Nextable<H>>[];
15
+ static exec<FL extends FunctionLike>(fns: (Nextable<FL> | undefined)[], ...arguments_: Parameters<FL>): Promise<any>;
16
+ constructor(base?: string, routes?: Route<Nextable<H>>[]);
17
+ add(method: HttpMethod | "", route: Nextable<H> | RouteMatch, ...fns: Nextable<H>[]): this;
18
+ clone(base?: string): Router<H>;
19
+ find(method: HttpMethod, pathname: string): FindResult<H>;
20
+ use(base: Nextable<H> | RouteMatch | Router<H>, ...fns: (Nextable<H> | Router<H>)[]): this;
21
+ }
@@ -0,0 +1,21 @@
1
+ import type { FindResult, FunctionLike, HttpMethod, Nextable, RouteMatch } from "./types.d.d.mts";
2
+ export type Route<H> = {
3
+ fns: (H | Router<H extends FunctionLike ? H : never>)[];
4
+ isMiddleware: boolean;
5
+ method: HttpMethod | "";
6
+ } & ({
7
+ keys: string[] | false;
8
+ pattern: RegExp;
9
+ } | {
10
+ matchAll: true;
11
+ });
12
+ export declare class Router<H extends FunctionLike> {
13
+ base: string;
14
+ routes: Route<Nextable<H>>[];
15
+ static exec<FL extends FunctionLike>(fns: (Nextable<FL> | undefined)[], ...arguments_: Parameters<FL>): Promise<any>;
16
+ constructor(base?: string, routes?: Route<Nextable<H>>[]);
17
+ add(method: HttpMethod | "", route: Nextable<H> | RouteMatch, ...fns: Nextable<H>[]): this;
18
+ clone(base?: string): Router<H>;
19
+ find(method: HttpMethod, pathname: string): FindResult<H>;
20
+ use(base: Nextable<H> | RouteMatch | Router<H>, ...fns: (Nextable<H> | Router<H>)[]): this;
21
+ }
@@ -0,0 +1,21 @@
1
+ import type { FindResult, FunctionLike, HttpMethod, Nextable, RouteMatch } from "./types.d.d.ts";
2
+ export type Route<H> = {
3
+ fns: (H | Router<H extends FunctionLike ? H : never>)[];
4
+ isMiddleware: boolean;
5
+ method: HttpMethod | "";
6
+ } & ({
7
+ keys: string[] | false;
8
+ pattern: RegExp;
9
+ } | {
10
+ matchAll: true;
11
+ });
12
+ export declare class Router<H extends FunctionLike> {
13
+ base: string;
14
+ routes: Route<Nextable<H>>[];
15
+ static exec<FL extends FunctionLike>(fns: (Nextable<FL> | undefined)[], ...arguments_: Parameters<FL>): Promise<any>;
16
+ constructor(base?: string, routes?: Route<Nextable<H>>[]);
17
+ add(method: HttpMethod | "", route: Nextable<H> | RouteMatch, ...fns: Nextable<H>[]): this;
18
+ clone(base?: string): Router<H>;
19
+ find(method: HttpMethod, pathname: string): FindResult<H>;
20
+ use(base: Nextable<H> | RouteMatch | Router<H>, ...fns: (Nextable<H> | Router<H>)[]): this;
21
+ }
@@ -0,0 +1,9 @@
1
+ import type { ServerResponse } from "node:http";
2
+ /**
3
+ * Send `JSON` object
4
+ * @param response response object
5
+ * @param statusCode
6
+ * @param jsonBody of data
7
+ */
8
+ declare const sendJson: (response: ServerResponse, statusCode: number, jsonBody: unknown) => void;
9
+ export = sendJson;
@@ -0,0 +1,9 @@
1
+ import type { ServerResponse } from "node:http";
2
+ /**
3
+ * Send `JSON` object
4
+ * @param response response object
5
+ * @param statusCode
6
+ * @param jsonBody of data
7
+ */
8
+ declare const sendJson: (response: ServerResponse, statusCode: number, jsonBody: unknown) => void;
9
+ export default sendJson;
@@ -0,0 +1,9 @@
1
+ import type { ServerResponse } from "node:http";
2
+ /**
3
+ * Send `JSON` object
4
+ * @param response response object
5
+ * @param statusCode
6
+ * @param jsonBody of data
7
+ */
8
+ declare const sendJson: (response: ServerResponse, statusCode: number, jsonBody: unknown) => void;
9
+ export = sendJson;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/connect",
3
- "version": "3.0.25",
3
+ "version": "3.0.26",
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
6
  "javascript",