UNPKG

@tanstack/db

Version:

A reactive client store for building super fast apps on sync

119 lines (118 loc) 2.54 kB
import { Func, Aggregate } from "../ir.js"; import { toExpression } from "./ref-proxy.js"; function eq(left, right) { return new Func(`eq`, [toExpression(left), toExpression(right)]); } function gt(left, right) { return new Func(`gt`, [toExpression(left), toExpression(right)]); } function gte(left, right) { return new Func(`gte`, [toExpression(left), toExpression(right)]); } function lt(left, right) { return new Func(`lt`, [toExpression(left), toExpression(right)]); } function lte(left, right) { return new Func(`lte`, [toExpression(left), toExpression(right)]); } function and(left, right, ...rest) { const allArgs = [left, right, ...rest]; return new Func( `and`, allArgs.map((arg) => toExpression(arg)) ); } function or(left, right, ...rest) { const allArgs = [left, right, ...rest]; return new Func( `or`, allArgs.map((arg) => toExpression(arg)) ); } function not(value) { return new Func(`not`, [toExpression(value)]); } function inArray(value, array) { return new Func(`in`, [toExpression(value), toExpression(array)]); } function like(left, right) { return new Func(`like`, [toExpression(left), toExpression(right)]); } function ilike(left, right) { return new Func(`ilike`, [toExpression(left), toExpression(right)]); } function upper(arg) { return new Func(`upper`, [toExpression(arg)]); } function lower(arg) { return new Func(`lower`, [toExpression(arg)]); } function length(arg) { return new Func(`length`, [toExpression(arg)]); } function concat(...args) { return new Func( `concat`, args.map((arg) => toExpression(arg)) ); } function coalesce(...args) { return new Func( `coalesce`, args.map((arg) => toExpression(arg)) ); } function add(left, right) { return new Func(`add`, [toExpression(left), toExpression(right)]); } function count(arg) { return new Aggregate(`count`, [toExpression(arg)]); } function avg(arg) { return new Aggregate(`avg`, [toExpression(arg)]); } function sum(arg) { return new Aggregate(`sum`, [toExpression(arg)]); } function min(arg) { return new Aggregate(`min`, [toExpression(arg)]); } function max(arg) { return new Aggregate(`max`, [toExpression(arg)]); } const comparisonFunctions = [ `eq`, `gt`, `gte`, `lt`, `lte`, `in`, `like`, `ilike` ]; export { add, and, avg, coalesce, comparisonFunctions, concat, count, eq, gt, gte, ilike, inArray, length, like, lower, lt, lte, max, min, not, or, sum, upper }; //# sourceMappingURL=functions.js.map