vulcain-corejs
Version:
Vulcain micro-service framework
56 lines (54 loc) • 1.41 kB
JavaScript
/**
* This class provide a way to customize the http response.
*
* @export
* @class HttpResponse
*/
class HttpResponse {
constructor(content, statusCode = 200) {
this.headers = new Map();
this.statusCode = statusCode;
this.content = content;
}
/**
* Add a custom header value to the response
*
* @param {string} name
* @param {string} value
*/
addHeader(name, value) {
this.headers.set(name, value);
}
}
HttpResponse.VulcainContentType = "application/vulcain";
exports.HttpResponse = HttpResponse;
class HttpRedirectResponse extends HttpResponse {
constructor(url) {
super();
if (!url)
throw new Error("Url is required");
this.statusCode = 302;
this.addHeader("Location", url);
}
}
exports.HttpRedirectResponse = HttpRedirectResponse;
class BadRequestResponse extends HttpResponse {
constructor(content) {
super(content, 400);
if (typeof content === "string") {
this.content = {
error: { message: content }
};
}
}
}
exports.BadRequestResponse = BadRequestResponse;
class VulcainResponse extends HttpResponse {
constructor(content) {
super(content);
this.contentType = HttpResponse.VulcainContentType;
}
}
exports.VulcainResponse = VulcainResponse;
//# sourceMappingURL=response.js.map
;