@warlock.js/cascade
Version:
ORM for managing databases
29 lines (28 loc) • 892 B
JavaScript
import {$agg}from'./expressions.js';import {Pipeline}from'./pipeline.js';class GroupByPipeline extends Pipeline {
_id;
groupByData;
/**
* Constructor
*/
constructor(_id, groupByData = {}) {
super("group");
this._id = _id;
this.groupByData = groupByData;
if (typeof _id === "string") {
_id = $agg.columnName(_id);
}
if (Array.isArray(_id)) {
_id = _id.reduce((result, column) => {
result[column.split(".")[0]] = $agg.columnName(column);
return result;
}, {});
}
this.data({
_id: _id,
...this.groupByData,
});
}
}
function groupByPipeline(column, groupByData) {
return new GroupByPipeline(column, groupByData);
}export{GroupByPipeline,groupByPipeline};//# sourceMappingURL=GroupByPipeline.js.map