UNPKG

@xroom.app/http-listener

Version:
33 lines (27 loc) 1.29 kB
type Request = import('http').IncomingMessage type Response = import('http').ServerResponse type JsonArray = ReadonlyArray<Json> type JsonRecord = { readonly [key: string]: Json } /** Type matches any json */ type Json = boolean | number | string | null | JsonRecord | JsonArray | readonly [] /** Request data for json request case */ type JsonRequestData = { type: 'json', data: Json, request: Request, response: Response } /** Request data for text request case */ type TextRequestData = { type: 'text', data: string, request: Request, response: Response } /** Request data for query request case */ type QueryRequestData = { type: 'query', data: import('querystring').ParsedUrlQuery, request: Request, response: Response } /** Event will be fired when any http request will be received */ type RequestReceivedEvent = import('@xroom.app/events').Event<JsonRequestData | TextRequestData | QueryRequestData> /** * RequestListener instance * * Includes event system and * start listening port command */ type RequestListener = { listen: (port: number) => import('http').Server eventSystem: import('@xroom.app/events').EventSystem events: { requestReceived: RequestReceivedEvent } } /** Returns new http request listener */ export function getRequestListener(): RequestListener