-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
types.ts
43 lines (36 loc) · 1.19 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import { ConnInfo, Handler } from "./deps.ts";
export interface Router {
routes: Map<string, Route>;
get(path: PathArgument, ...handlers: HandlerArgument[]): Router;
post(path: PathArgument, ...handlers: HandlerArgument[]): Router;
put(path: PathArgument, ...handlers: HandlerArgument[]): Router;
delete(path: PathArgument, ...handlers: HandlerArgument[]): Router;
patch(path: PathArgument, ...handlers: HandlerArgument[]): Router;
head(path: PathArgument, ...handlers: HandlerArgument[]): Router;
options(path: PathArgument, ...handlers: HandlerArgument[]): Router;
}
export type PathArgument = string | RegExp;
export interface Next {
(error?: unknown): void;
}
export type RequestHandler = (
request: Request,
connInfo: ConnInfo,
next: Next,
) => void | Promise<void> | Response | Promise<Response>;
export type HandlerArgument = Handler | RequestHandler | RequestHandler[];
export type Route = {
method: string;
path: PathArgument;
handlers: HandlerArgument[];
};
export type MiddlewareArgument =
| PathArgument
| Router
| RequestHandler
| RequestHandler[];
export interface AppMiddleware {
type: string;
path: PathArgument;
middlewares: MiddlewareArgument[];
}