UNPKG

koa-accepts

Version:

Adjust content type based on accepts header

29 lines 1.26 kB
"use strict"; 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