import {HTTPStatus} from "@extollo/util" import {Request} from "../lifecycle/Request" /** * Abstract class that defines "factory" that knows how to write a particular * response to the response object. */ export abstract class ResponseFactory { /** The status that should be set on the response. */ protected targetStatus: HTTPStatus = HTTPStatus.OK /** * Called to write the response data to the HTTP response object. * @param request */ public async write(request: Request): Promise { request.response.setStatus(this.targetStatus) return request } /** Set the target status of this factory. */ public status(status: HTTPStatus) { this.targetStatus = status return this } }