UNPKG

inceptum

Version:

hipages take on the foundational library for enterprise-grade apps written in NodeJS

34 lines 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContentNegotiationMiddleware = void 0; const xmlbuilder = require("xmlbuilder"); /** * To use this middleware with swagger, set xml root tag name in relevant definition in swagger.yml */ class ContentNegotiationMiddleware { constructor(xmlRoot) { this.xmlRoot = xmlRoot; } getMiddleware() { const xmlRoot = this.xmlRoot; if (!xmlRoot) { return; } return (req, res, next) => { const xmlType = 'application/xml'; if (xmlType === req.get('accept')) { const originalSend = res.send; res.send = function (...data) { const obj = {}; obj[xmlRoot] = data[0]; data[0] = xmlbuilder.create(obj).end(); originalSend.apply(res, data); }; res.header('content-type', xmlType); } next(); }; } } exports.ContentNegotiationMiddleware = ContentNegotiationMiddleware; //# sourceMappingURL=ContentNegotiationMiddleware.js.map