UNPKG

ts-flex-query

Version:
18 lines 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.groupAndAggregate = groupAndAggregate; const pipe_expression_1 = require("../../helpers/pipe-expression"); const query_factory_1 = require("../../helpers/query-factory"); const field_1 = require("../basic/field"); const group_1 = require("../basic/group"); const map_1 = require("../basic/map"); const merge_1 = require("./merge"); const no_op_1 = require("./no-op"); const query_schema_1 = require("./query-schema"); const record_1 = require("./record"); function groupAndAggregate(groupValueSchema, aggregates) { return new query_factory_1.QueryFactory().create((0, group_1.groupBy)((0, query_schema_1.createOperatorForSchema)(groupValueSchema, null)), (0, map_1.map)((group) => (0, pipe_expression_1.pipeExpression)(group, (0, field_1.field)(group_1.GroupOperator.groupValueField), aggregates ? (0, merge_1.merge)((0, pipe_expression_1.pipeExpression)(group, (0, field_1.field)(group_1.GroupOperator.elementsField), (0, record_1.record)(aggregates))) : (0, no_op_1.noOp)()))); } //# sourceMappingURL=group-and-aggregate.js.map