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
							 |