sipp
Version:
An Opinionated, High-Productivity MVC Web Framework in TypeScript
40 lines (39 loc) • 2.02 kB
TypeScript
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>>;