1 |
|
2 | var Request$1 = Request;
|
3 |
|
4 | var Response$1 = Response;
|
5 |
|
6 | var ResponseInit$1 = ResponseInit;
|
7 |
|
8 | var Headers$1 = Headers;
|
9 |
|
10 | declare type StaticFileOptions = {
|
11 |
|
12 | maxAge?: number | undefined;
|
13 |
|
14 | cachingHeaders?: boolean | undefined;
|
15 | };
|
16 | declare type StaticFileInit = ResponseInit$1 & StaticFileOptions;
|
17 | declare class StaticFile {
|
18 | readonly filePath: string;
|
19 | readonly responseInit: ResponseInit$1;
|
20 | readonly options: StaticFileOptions;
|
21 | constructor(filePath: string, init?: StaticFileInit);
|
22 | }
|
23 |
|
24 | declare type BodyStream = Request$1 extends {
|
25 | body: infer T;
|
26 | }
|
27 | ? Exclude<T, null>
|
28 | : never;
|
29 | declare type BodyAccessorArgs<M> = M extends MethodNoBody
|
30 | ? [ERROR: 'NO_BODY_ALLOWED_FOR_METHOD']
|
31 | : [];
|
32 | declare class CustomRequest<M extends string, Params extends string> {
|
33 | request: Request$1;
|
34 | readonly method: M;
|
35 | readonly url: string;
|
36 | readonly headers: Headers$1;
|
37 | readonly path: string;
|
38 | readonly search: string;
|
39 | readonly query: URLSearchParams;
|
40 | readonly params: {
|
41 | [K in Params]: string;
|
42 | };
|
43 | _fallbackBody: BodyStream | undefined;
|
44 | constructor(request: Request$1);
|
45 | get body(): M extends MethodNoBody ? null : BodyStream;
|
46 | get bodyUsed(): boolean;
|
47 | arrayBuffer(..._: BodyAccessorArgs<M>): Promise<ArrayBuffer>;
|
48 | text(..._: BodyAccessorArgs<M>): Promise<string>;
|
49 | json<T = JSONValue>(..._: BodyAccessorArgs<M>): Promise<T>;
|
50 | }
|
51 |
|
52 | declare type MaybePromise<T> = T | Promise<T>;
|
53 | declare type MaybeIntersect<T, U> = U extends undefined ? T : T & U;
|
54 | declare type JsonPayload = Record<string, unknown> | Array<unknown>;
|
55 | declare type ExtractParams<T extends string> = string extends T
|
56 | ? never
|
57 | : T extends `${infer _Start}:${infer Param}/${infer Rest}`
|
58 | ? Param | ExtractParams<Rest>
|
59 | : T extends `${infer _Start}:${infer Param}`
|
60 | ? Param
|
61 | : never;
|
62 | declare type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS';
|
63 | declare type MethodNoBody = Exclude<Method, 'POST' | 'PUT'>;
|
64 | declare type Handler<M extends string, P extends string, RequestContext> = (
|
65 | request: MaybeIntersect<CustomRequest<M, ExtractParams<P>>, RequestContext>,
|
66 | ) => MaybePromise<
|
67 | Response$1 | StaticFile | JsonPayload | null | undefined | void
|
68 | >;
|
69 | declare type Route<RequestContext> = [
|
70 | string,
|
71 | string,
|
72 | Handler<string, string, RequestContext>,
|
73 | ];
|
74 |
|
75 | declare type JSONValue =
|
76 | | null
|
77 | | boolean
|
78 | | number
|
79 | | string
|
80 | | Array<JSONValue>
|
81 | | {
|
82 | [key: string]: JSONValue;
|
83 | };
|
84 |
|
85 | declare type HttpErrorInit = {
|
86 | status: number;
|
87 | message?: string;
|
88 | };
|
89 | declare class HttpError extends Error {
|
90 | readonly status: number;
|
91 | constructor(status: number, message?: string, options?: ErrorOptions);
|
92 | constructor(init: HttpErrorInit, options?: ErrorOptions);
|
93 | get name(): string;
|
94 | get [Symbol.toStringTag](): string;
|
95 | }
|
96 |
|
97 | declare class CustomResponse extends Response$1 {
|
98 | static file(filePath: string, init?: StaticFileInit): StaticFile;
|
99 | }
|
100 |
|
101 | declare const createApplication: <
|
102 | CtxGetter extends (request: Request) => object | undefined = (
|
103 | request: Request,
|
104 | ) => undefined,
|
105 | >(applicationOptions?: {
|
106 | bodyParserMaxBufferSize?: number;
|
107 | errorHandler?: (error: Error) => MaybePromise<Response>;
|
108 | root?: string;
|
109 | allowStaticFrom?: string[];
|
110 | serveFile?: (params: {
|
111 | filePath: string;
|
112 | fullFilePath: string;
|
113 | status: number;
|
114 | statusText: string;
|
115 | headers: Headers;
|
116 | options: StaticFileOptions;
|
117 | }) => Promise<Response | null>;
|
118 | getContext?: CtxGetter;
|
119 | }) => {
|
120 | defineRoutes: (
|
121 | fn: (app: {
|
122 | get: <P extends string>(
|
123 | path: P,
|
124 | handler: Handler<'GET', P, ReturnType<CtxGetter>>,
|
125 | ) => Route<ReturnType<CtxGetter>>;
|
126 | post: <P_1 extends string>(
|
127 | path: P_1,
|
128 | handler: Handler<'POST', P_1, ReturnType<CtxGetter>>,
|
129 | ) => Route<ReturnType<CtxGetter>>;
|
130 | put: <P_2 extends string>(
|
131 | path: P_2,
|
132 | handler: Handler<'PUT', P_2, ReturnType<CtxGetter>>,
|
133 | ) => Route<ReturnType<CtxGetter>>;
|
134 | delete: <P_3 extends string>(
|
135 | path: P_3,
|
136 | handler: Handler<'DELETE', P_3, ReturnType<CtxGetter>>,
|
137 | ) => Route<ReturnType<CtxGetter>>;
|
138 | route: <
|
139 | M extends
|
140 | | (string & {})
|
141 | | ('GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS' | '*'),
|
142 | P_4 extends string,
|
143 | >(
|
144 | method: M,
|
145 | path: P_4,
|
146 | handler: Handler<Uppercase<M>, P_4, ReturnType<CtxGetter>>,
|
147 | ) => Route<ReturnType<CtxGetter>>;
|
148 | }) => Route<ReturnType<CtxGetter>>[],
|
149 | ) => Route<ReturnType<CtxGetter>>[];
|
150 | createRequestHandler: (
|
151 | ...routeLists: Route<ReturnType<CtxGetter>>[][]
|
152 | ) => (request: Request) => Promise<Response>;
|
153 | attachRoutes: (
|
154 | ...routeLists: Route<ReturnType<CtxGetter>>[][]
|
155 | ) => (request: Request) => Promise<Response>;
|
156 | };
|
157 |
|
158 | export {
|
159 | HttpError,
|
160 | Request$1 as Request,
|
161 | CustomResponse as Response,
|
162 | createApplication,
|
163 | };
|
164 |
|
\ | No newline at end of file |