UNPKG

sipp

Version:

An Opinionated, High-Productivity MVC Web Framework in TypeScript

40 lines (39 loc) 2.02 kB
import { Request, Response } from 'express'; import { PathDownload, StreamDownload } from './download'; import { View } from '../view'; export declare type ResponseBody = string | undefined | null | object | Array<any> | View; export declare type ResponseHeaders = { [key: string]: string; }; export declare class HTTPResponse<ResponseType> { protected readonly controllerResponse: ResponseType; protected readonly headers?: ResponseHeaders; protected readonly status?: number; protected mimeType: string | undefined; protected defaultHeaders: object | undefined; constructor(controllerResponse: ResponseType, headers?: ResponseHeaders, status?: number); handle(req: Request, res: Response): void; protected setBody(_: any, res: Response): HTTPResponse<ResponseType>; protected setStatus(req: Request, res: Response): HTTPResponse<ResponseType>; protected setHeaders(req: Request, res: Response): HTTPResponse<ResponseType>; protected setMimeType(req: Request, res: Response): HTTPResponse<ResponseType>; } export declare class HTTPRedirect extends HTTPResponse<string> { protected readonly status: number; handle(req: Request, res: Response): void; } export declare class JSONResponse extends HTTPResponse<object | Array<any>> { protected readonly mimeType: string; } export declare class HTMLResponse extends HTTPResponse<string> { protected readonly mimeType: string; } export declare class NoContentResponse extends HTTPResponse<undefined> { protected readonly mimeType: undefined; constructor(content?: any, headers?: any); } export declare class DownloadResponse extends HTTPResponse<StreamDownload | PathDownload> { constructor(download: StreamDownload | PathDownload, headers?: ResponseHeaders, status?: number); protected setBody(req: Request, res: Response): HTTPResponse<StreamDownload | PathDownload>; } export declare function toResponse(response: any, headers?: ResponseHeaders, status?: number): Promise<HTTPResponse<any>>;