UNPKG

odatafy-mongodb

Version:

convert oData requests through odatafy to MongoDB queries

30 lines (29 loc) 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateSortStage = exports.generateSortFromOrderbyExpr = void 0; var odatafy_parser_1 = require("odatafy-parser"); /** * Get MongoDB sort stage based on an oData url orderby expression * @param expr expression from url * @returns MongoDB sort stage */ function generateSortFromOrderbyExpr(expr) { var ast = odatafy_parser_1.orderbyParser.parse(expr); return generateSortStage(ast); } exports.generateSortFromOrderbyExpr = generateSortFromOrderbyExpr; /** * Get MongoDB sort stage based on the syntax tree of an oData orderby expression * @param ast abstract syntax tree of the parsed orderby expression * @returns MongoDB sort stage */ function generateSortStage(ast) { var result = { '$sort': {} }; ast.value.forEach(function (node) { result.$sort[node.value] = node.type == odatafy_parser_1.OrderDirection.Asc ? 1 : -1; }); return result; } exports.generateSortStage = generateSortStage;