UNPKG

ts-flex-query

Version:
28 lines 1.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GroupOperator = void 0; exports.groupBy = groupBy; const group_1 = require("../../expressions/group"); const variable_1 = require("../../expressions/variable"); const object_value_selector_1 = require("../../helpers/object-value-selector"); const data_type_1 = require("../../types/data-type"); class GroupOperator { constructor(groupValue) { this.groupValue = groupValue; } instantiate(input) { const variableSymbol = Symbol('vGroup'); const variableType = input.dataType.type === data_type_1.DataTypeType.array ? input.dataType.elementType : { type: data_type_1.DataTypeType.unknown }; const variableExpression = (0, variable_1.variable)(variableType, variableSymbol); return new group_1.GroupExpression(input, variableSymbol, this.groupValue(variableExpression), GroupOperator.elementsField, GroupOperator.groupValueField); } } exports.GroupOperator = GroupOperator; GroupOperator.elementsField = 'elements'; GroupOperator.groupValueField = 'key'; function groupBy(groupValueSelector) { return new GroupOperator((element) => (0, object_value_selector_1.createQueryFromObjectValueSelector)(groupValueSelector).instantiate(element)); } //# sourceMappingURL=group.js.map