UNPKG

1.58 kBTypeScriptView Raw
1/// <reference types="node" />
2
3import { IncomingHttpHeaders } from "http";
4
5type StaticOrigin = boolean | string | RegExp | Array<boolean | string | RegExp>;
6
7type CustomOrigin = (
8 requestOrigin: string | undefined,
9 callback: (err: Error | null, origin?: StaticOrigin) => void,
10) => void;
11
12declare namespace e {
13 interface CorsRequest {
14 method?: string | undefined;
15 headers: IncomingHttpHeaders;
16 }
17 interface CorsOptions {
18 /**
19 * @default '*''
20 */
21 origin?: StaticOrigin | CustomOrigin | undefined;
22 /**
23 * @default 'GET,HEAD,PUT,PATCH,POST,DELETE'
24 */
25 methods?: string | string[] | undefined;
26 allowedHeaders?: string | string[] | undefined;
27 exposedHeaders?: string | string[] | undefined;
28 credentials?: boolean | undefined;
29 maxAge?: number | undefined;
30 /**
31 * @default false
32 */
33 preflightContinue?: boolean | undefined;
34 /**
35 * @default 204
36 */
37 optionsSuccessStatus?: number | undefined;
38 }
39 type CorsOptionsDelegate<T extends CorsRequest = CorsRequest> = (
40 req: T,
41 callback: (err: Error | null, options?: CorsOptions) => void,
42 ) => void;
43}
44
45declare function e<T extends e.CorsRequest = e.CorsRequest>(
46 options?: e.CorsOptions | e.CorsOptionsDelegate<T>,
47): (
48 req: T,
49 res: {
50 statusCode?: number | undefined;
51 setHeader(key: string, value: string): any;
52 end(): any;
53 },
54 next: (err?: any) => any,
55) => void;
56export = e;