1 | declare 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 | }
|