UNPKG

dino-express

Version:

DinO enabled REST framework based on express

31 lines 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProjectionsMiddleware = void 0; const dino_core_1 = require("dino-core"); const after_handler_middleware_1 = require("../../after.handler.middleware"); const lodash_1 = require("lodash"); class ProjectionsMiddleware extends after_handler_middleware_1.AfterHandlerMiddleware { /** * Definition of the function that will handle the projections business logic associated with this middleware. * * @param {import('express').Request} req Express request instance * @param {import('express').Response} res express response instance * @param {Function} next the next function that will be invoked as part of the express chain */ handle(req, res, next) { const projections = req.headers['x-project']; if (dino_core_1.ObjectHelper.isNotDefined(projections)) { return next(); } const filters = (typeof projections === 'string' ? projections.split(',') : projections); if (Array.isArray(res.body)) { res.body = res.body.map((obj) => (0, lodash_1.pick)(obj, filters)); } else { res.body = (0, lodash_1.pick)(res.body, filters); } next(); } } exports.ProjectionsMiddleware = ProjectionsMiddleware; //# sourceMappingURL=ProjectionsMiddleware.js.map