UNPKG

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