module.exports = class KirbeResponse { constructor(res) { this.coreRes = res; this.headers = {}; this.statusCode = 200; this.statusMessage = null; this.data = Buffer.alloc(0); } body(body) { if (typeof body === 'object' && !Buffer.isBuffer(body)) { if (!this.headers['content-type']) this.headers['content-type'] = 'application/json'; this.data = JSON.stringify(body); } else this.data = body; return this; } header(a, b) { if (typeof a === 'object') Object.keys(a).forEach((v) => this.headers[v.toLowerCase()] = a[v]); else this.headers[a.toLowerCase()] = b; return this; } status(code, message) { this.statusCode = code; this.statusMessage = message; return this; } writeHead(status, headers) { if (status) this.status(status); if (headers) this.header(headers); } end(data) { if (data) this.body(data); if (this.statusMessage) this.coreRes.writeHead(this.statusCode, this.statusMessage, this.headers); else this.coreRes.writeHead(this.statusCode, this.headers); this.coreRes.end(this.data); return this; } };