@decaf-ts/for-couchdb
Version:
decaf-ts couchdb wrappers
130 lines • 3.87 kB
JavaScript
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