koa-accepts
Version:
Adjust content type based on accepts header
29 lines • 1.26 kB
JavaScript
var _this = this;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var lodash_1 = require("lodash");
var Negotiator = require("negotiator");
tslib_1.__exportStar(require("./utils"), exports);
var constants_1 = require("./constants");
var utils_1 = require("./utils");
exports.default = function () { return function (ctx, next) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var negotiator, mediaType;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, next()];
case 1:
_a.sent();
if (ctx.body instanceof Buffer || typeof ctx.body !== 'object')
return [2 /*return*/];
negotiator = new Negotiator(ctx);
mediaType = lodash_1.intersection(negotiator.mediaTypes(), Object.keys(constants_1.AVAILABLE_TYPES))[0];
if (mediaType !== undefined) {
ctx.type = mediaType;
ctx.body = constants_1.AVAILABLE_TYPES[mediaType](utils_1.clean(ctx.body));
}
return [2 /*return*/];
}
});
}); }; };
//# sourceMappingURL=index.js.map
;