You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					112 lines
				
				2.9 KiB
			
		
		
			
		
	
	
					112 lines
				
				2.9 KiB
			| 
											3 years ago
										 | import * as stream from 'stream' | ||
|  | import * as http from 'http' | ||
|  | 
 | ||
|  | type HTTPMethods = 'DELETE' | 'delete' | | ||
|  |                    'GET' | 'get' | | ||
|  |                    'HEAD' | 'head' | | ||
|  |                    'PATCH' | 'patch' | | ||
|  |                    'POST' | 'post' | | ||
|  |                    'PUT' | 'put' | | ||
|  |                    'OPTIONS' | 'options' | ||
|  | 
 | ||
|  | declare namespace LightMyRequest { | ||
|  |   function inject ( | ||
|  |     dispatchFunc: DispatchFunc, | ||
|  |     options?: string | InjectOptions | ||
|  |   ): Chain | ||
|  |   function inject ( | ||
|  |     dispatchFunc: DispatchFunc, | ||
|  |     options: string | InjectOptions, | ||
|  |     callback: CallbackFunc | ||
|  |   ): void | ||
|  | 
 | ||
|  |   type DispatchFunc = (req: Request, res: ServerResponse) => void | ||
|  | 
 | ||
|  |   type CallbackFunc = (err: Error, response: Response) => void | ||
|  | 
 | ||
|  |   type InjectPayload = string | object | Buffer | NodeJS.ReadableStream | ||
|  | 
 | ||
|  |   function isInjection (obj: Request | ServerResponse): boolean | ||
|  | 
 | ||
|  |   interface InjectOptions { | ||
|  |     url?: string | { | ||
|  |       pathname: string | ||
|  |       protocol?: string | ||
|  |       hostname?: string | ||
|  |       port?: string | number | ||
|  |       query?: string | { [k: string]: string | string[] } | ||
|  |     } | ||
|  |     path?: string | { | ||
|  |       pathname: string | ||
|  |       protocol?: string | ||
|  |       hostname?: string | ||
|  |       port?: string | number | ||
|  |       query?: string | { [k: string]: string | string[] } | ||
|  |     } | ||
|  |     headers?: http.IncomingHttpHeaders | http.OutgoingHttpHeaders | ||
|  |     query?: string | { [k: string]: string | string[] } | ||
|  |     simulate?: { | ||
|  |       end: boolean, | ||
|  |       split: boolean, | ||
|  |       error: boolean, | ||
|  |       close: boolean | ||
|  |     } | ||
|  |     authority?: string | ||
|  |     remoteAddress?: string | ||
|  |     method?: HTTPMethods | ||
|  |     validate?: boolean | ||
|  |     payload?: InjectPayload | ||
|  |     server?: http.Server | ||
|  |     cookies?: { [k: string]: string } | ||
|  |   } | ||
|  | 
 | ||
|  |   interface Request extends stream.Readable { | ||
|  |     url: string | ||
|  |     httpVersion: string | ||
|  |     method: HTTPMethods | ||
|  |     headers: http.IncomingHttpHeaders | ||
|  |     rawHeaders: string[] | ||
|  |     prepare: (next: () => void) => void | ||
|  |     // @deprecated
 | ||
|  |     connection: object | ||
|  |   } | ||
|  | 
 | ||
|  |   interface ServerResponse extends http.ServerResponse {}  | ||
|  | 
 | ||
|  |   interface Response { | ||
|  |     raw: { | ||
|  |       res: http.ServerResponse, | ||
|  |       req: Request | ||
|  |     } | ||
|  |     rawPayload: Buffer | ||
|  |     headers: http.OutgoingHttpHeaders | ||
|  |     statusCode: number | ||
|  |     statusMessage: string | ||
|  |     trailers: { [key: string]: string } | ||
|  |     payload: string | ||
|  |     body: string | ||
|  |     json: <T = any>() => T | ||
|  |     cookies: Array<object> | ||
|  |   } | ||
|  | 
 | ||
|  |   interface Chain extends Promise<Response> { | ||
|  |     delete: (url: string) => Chain | ||
|  |     get: (url: string) => Chain | ||
|  |     head: (url: string) => Chain | ||
|  |     options: (url: string) => Chain | ||
|  |     patch: (url: string) => Chain | ||
|  |     post: (url: string) => Chain | ||
|  |     put: (url: string) => Chain | ||
|  |     trace: (url: string) => Chain | ||
|  |     body: (body: InjectPayload) => Chain | ||
|  |     headers: (headers: http.IncomingHttpHeaders | http.OutgoingHttpHeaders) => Chain | ||
|  |     payload: (payload: InjectPayload) => Chain | ||
|  |     query: (query: object) => Chain | ||
|  |     cookies: (query: object) => Chain | ||
|  |     end(): Promise<Response> | ||
|  |     end(callback: CallbackFunc): void | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | export = LightMyRequest |