UNPKG

odatafy-mongodb

Version:

convert oData requests through odatafy to MongoDB queries

31 lines (30 loc) 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateComputeStage = exports.generateComputeStageFromComputedExpr = void 0; var odatafy_parser_1 = require("odatafy-parser"); var filterGenerator_1 = require("./filterGenerator"); /** * Generate a MongoDB addFields stage based on an oData compute expression * @param computedExpr expression of compute parameter * @returns MongoDB addFields stage */ function generateComputeStageFromComputedExpr(computedExpr) { var ast = odatafy_parser_1.computeParser.parse(computedExpr); return generateComputeStage(ast); } exports.generateComputeStageFromComputedExpr = generateComputeStageFromComputedExpr; /** * Generate a MongoDB addFields expression based on the ast of a parsed oData compute expression * @param ast abstract syntax tree of a parsed oData compute expression * @returns MongoDB addFields stage */ function generateComputeStage(ast) { var fields = {}; ast.value.forEach(function (itemNode) { fields[itemNode.computeIdentifier] = (0, filterGenerator_1.processNode)(itemNode.commonExpr, false, { withoutExpr: true }); }); return { "$addFields": fields }; } exports.generateComputeStage = generateComputeStage;