@darlean/base
Version:
Base types and definitions for creating Darlean actors and suites
78 lines (77 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.traverse = exports.normalize = exports.lowercase = exports.uppercase = exports.containsni = exports.contains = exports.prefix = exports.gte = exports.lte = exports.eq = exports.field = exports.array = exports.literal = exports.sk = exports.pk = exports.and = exports.or = void 0;
function or(...items) {
return ['or', ...items];
}
exports.or = or;
function and(...items) {
return ['and', ...items];
}
exports.and = and;
function pk(index) {
return ['pk', index];
}
exports.pk = pk;
function sk(index) {
return ['sk', index];
}
exports.sk = sk;
function literal(value) {
return ['literal', value];
}
exports.literal = literal;
function array(...values) {
return ['array', ...values];
}
exports.array = array;
function field(path) {
return ['field', path];
}
exports.field = field;
function eq(a, b) {
return ['eq', a, b];
}
exports.eq = eq;
function lte(a, b) {
return ['lte', a, b];
}
exports.lte = lte;
function gte(a, b) {
return ['gte', a, b];
}
exports.gte = gte;
function prefix(value, prefix) {
return ['prefix', value, prefix];
}
exports.prefix = prefix;
function contains(value, ...parts) {
return ['contains', value, ...parts];
}
exports.contains = contains;
function containsni(value, ...parts) {
return ['containsni', value, ...parts];
}
exports.containsni = containsni;
function uppercase(value) {
return ['uppercase', value];
}
exports.uppercase = uppercase;
function lowercase(value) {
return ['lowercase', value];
}
exports.lowercase = lowercase;
function normalize(value) {
return ['normalize', value];
}
exports.normalize = normalize;
function traverse(expr, callback) {
const isExpr = Array.isArray(expr);
callback(expr, isExpr ? expr : undefined);
if (isExpr) {
for (let idx = 1; idx < expr.length; idx++) {
traverse(expr[idx], callback);
}
}
}
exports.traverse = traverse;