UNPKG

@decaf-ts/for-couchdb

Version:
130 lines 3.87 kB
import { applyViewDecorator, Condition, Operator } from "@decaf-ts/core"; import { Decoration } from "@decaf-ts/decoration"; export function groupBy(compositionsOrOptions, nameOrOptions) { let opts = {}; if (Array.isArray(compositionsOrOptions)) { opts.compositions = compositionsOrOptions; } else if (typeof compositionsOrOptions === "string") { opts.name = compositionsOrOptions; } else if (compositionsOrOptions) { opts = compositionsOrOptions; } if (typeof nameOrOptions === "string") { opts.name = nameOrOptions; } else if (nameOrOptions) { opts = Object.assign({}, opts, nameOrOptions); } if (typeof opts.returnDocs === "undefined") { opts.returnDocs = true; } return Decoration.for(Operator.GROUP_BY) .define({ decorator: function groupBy(o) { return applyViewDecorator(Operator.GROUP_BY, "groupBy", o); }, args: [opts], }) .apply(); } export function count(valueOrCondition, options) { let opts = {}; if (valueOrCondition instanceof Condition) { opts.condition = valueOrCondition; } else if (typeof valueOrCondition === "object" && valueOrCondition) { opts = valueOrCondition; } else if (typeof valueOrCondition !== "undefined") { opts.value = valueOrCondition; } if (options) opts = Object.assign({}, opts, options); return Decoration.for(Operator.COUNT) .define({ decorator: function count(o) { return applyViewDecorator(Operator.COUNT, "count", o); }, args: [opts], }) .apply(); } export function sum(conditionOrOptions, options) { let opts = {}; if (conditionOrOptions instanceof Condition) { opts.condition = conditionOrOptions; } else if (conditionOrOptions) { opts = conditionOrOptions; } if (options) opts = Object.assign({}, opts, options); return Decoration.for(Operator.SUM) .define({ decorator: function sum(o) { return applyViewDecorator(Operator.SUM, "sum", o); }, args: [opts], }) .apply(); } export function max(conditionOrOptions, options) { let opts = {}; if (conditionOrOptions instanceof Condition) { opts.condition = conditionOrOptions; } else if (conditionOrOptions) { opts = conditionOrOptions; } if (options) opts = Object.assign({}, opts, options); return Decoration.for(Operator.MAX) .define({ decorator: function max(o) { return applyViewDecorator(Operator.MAX, "max", o); }, args: [opts], }) .apply(); } export function min(conditionOrOptions, options) { let opts = {}; if (conditionOrOptions instanceof Condition) { opts.condition = conditionOrOptions; } else if (conditionOrOptions) { opts = conditionOrOptions; } if (options) opts = Object.assign({}, opts, options); return Decoration.for(Operator.MIN) .define({ decorator: function min(o) { return applyViewDecorator(Operator.MIN, "min", o); }, args: [opts], }) .apply(); } export function distinct(conditionOrOptions, options) { let opts = {}; if (conditionOrOptions instanceof Condition) { opts.condition = conditionOrOptions; } else if (conditionOrOptions) { opts = conditionOrOptions; } if (options) opts = Object.assign({}, opts, options); return Decoration.for(Operator.DISTINCT) .define({ decorator: function distinct(o) { return applyViewDecorator(Operator.DISTINCT, "distinct", o); }, args: [opts], }) .apply(); } //# sourceMappingURL=decorators.js.map