UNPKG

3.63 kBTypeScriptView Raw
1declare module "next-connect" {
2 import { IncomingMessage, ServerResponse } from "http";
3
4 export type NextHandler = (err?: any) => void;
5 export type Middleware<Req, Res> =
6 | NextConnect<Req, Res>
7 | RequestHandler<Req, Res>;
8
9 export type NoMatchHandler<Req, Res> = (
10 req: Req,
11 res: Res
12 ) => any | Promise<any>;
13
14 export type RequestHandler<Req, Res> = (
15 req: Req,
16 res: Res,
17 next: NextHandler
18 ) => any | Promise<any>;
19
20 export type ErrorHandler<Req, Res> = (
21 err: any,
22 req: Req,
23 res: Res,
24 next: NextHandler
25 ) => any | Promise<any>;
26
27 export interface Options<Req, Res> {
28 onError?: ErrorHandler<Req, Res>;
29 onNoMatch?: NoMatchHandler<Req, Res>;
30 attachParams?: boolean;
31 disableResponseWait?: boolean;
32 }
33 interface NextConnect<Req, Res> {
34 (req: Req, res: Res): Promise<void>;
35
36 use<ReqExt = {}, ResExt = {}>(
37 ...handlers: Middleware<Req & ReqExt, Res & ResExt>[]
38 ): this;
39 use<ReqExt = {}, ResExt = {}>(
40 pattern: string | RegExp,
41 ...handlers: Middleware<Req & ReqExt, Res & ResExt>[]
42 ): this;
43
44 all<ReqExt = {}, ResExt = {}>(
45 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
46 ): this;
47 all<ReqExt = {}, ResExt = {}>(
48 pattern: string | RegExp,
49 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
50 ): this;
51
52 get<ReqExt = {}, ResExt = {}>(
53 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
54 ): this;
55 get<ReqExt = {}, ResExt = {}>(
56 pattern: string | RegExp,
57 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
58 ): this;
59
60 head<ReqExt = {}, ResExt = {}>(
61 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
62 ): this;
63 head<ReqExt = {}, ResExt = {}>(
64 pattern: string | RegExp,
65 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
66 ): this;
67
68 post<ReqExt = {}, ResExt = {}>(
69 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
70 ): this;
71 post<ReqExt = {}, ResExt = {}>(
72 pattern: string | RegExp,
73 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
74 ): this;
75
76 put<ReqExt = {}, ResExt = {}>(
77 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
78 ): this;
79 put<ReqExt = {}, ResExt = {}>(
80 pattern: string | RegExp,
81 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
82 ): this;
83
84 delete<ReqExt = {}, ResExt = {}>(
85 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
86 ): this;
87 delete<ReqExt = {}, ResExt = {}>(
88 pattern: string | RegExp,
89 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
90 ): this;
91
92 options<ReqExt = {}, ResExt = {}>(
93 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
94 ): this;
95 options<ReqExt = {}, ResExt = {}>(
96 pattern: string | RegExp,
97 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
98 ): this;
99
100 trace<ReqExt = {}, ResExt = {}>(
101 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
102 ): this;
103 trace<ReqExt = {}, ResExt = {}>(
104 pattern: string | RegExp,
105 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
106 ): this;
107
108 patch<ReqExt = {}, ResExt = {}>(
109 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
110 ): this;
111 patch<ReqExt = {}, ResExt = {}>(
112 pattern: string | RegExp,
113 ...handlers: RequestHandler<Req & ReqExt, Res & ResExt>[]
114 ): this;
115
116 run(req: Req, res: Res): Promise<void>;
117 }
118
119 export default function <Req = IncomingMessage, Res = ServerResponse>(
120 options?: Options<Req, Res>
121 ): NextConnect<Req, Res>;
122}