@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
53 lines (51 loc) • 1.33 kB
JavaScript
import {
convert
} from "./chunk-MDXL65W4.mjs";
import {
json
} from "./chunk-KPEGHJSZ.mjs";
import {
isDefined
} from "./chunk-DEJ7A5PY.mjs";
// src/data/Condition.ts
var Condition = class {
constructor(key, operator, value) {
this.key = key;
this.operator = operator;
this.value = value;
}
and = (...others) => new LogicalCondition("and", [this, ...others]);
or = (...others) => new LogicalCondition("or", [this, ...others]);
toJSON() {
return { [this.key]: { [`$${this.operator}`]: json.parse(this.value) } };
}
};
var LogicalCondition = class {
constructor(operator, conditions) {
this.operator = operator;
this.conditions = conditions;
}
toJSON() {
return { [`$${this.operator}`]: this.conditions.map((c) => c.toJSON()) };
}
};
var SortCondition = class extends Condition {
constructor(key, value) {
super(key, "", value);
this.key = key;
this.value = value;
}
toJSON() {
return { [this.key]: this.value };
}
};
var toCondition = (field, operator, value, conv = convert.default) => new Condition(field, operator, conv.from(value));
var isSortCondition = (s) => isDefined(s) && s instanceof SortCondition;
export {
Condition,
LogicalCondition,
SortCondition,
toCondition,
isSortCondition
};
//# sourceMappingURL=chunk-SWBW2VJ2.mjs.map