UNPKG

@tanstack/db

Version:

A reactive client store for building super fast apps on sync

64 lines (63 loc) 1.95 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const ir = require("../ir.cjs"); function getSourceAliasesFromExpression(expr) { switch (expr.type) { case `ref`: return new Set(expr.path[0] ? [expr.path[0]] : []); case `func`: { const sourceAliases = /* @__PURE__ */ new Set(); for (const arg of expr.args) { for (const alias of getSourceAliasesFromExpression(arg)) { sourceAliases.add(alias); } } return sourceAliases; } default: return /* @__PURE__ */ new Set(); } } function normalizeExpressionPaths(whereClause, collectionAlias) { const tpe = whereClause.type; if (tpe === `val`) { return new ir.Value(whereClause.value); } else if (tpe === `ref`) { const path = whereClause.path; if (Array.isArray(path)) { if (path[0] === collectionAlias && path.length > 1) { return new ir.PropRef(path.slice(1)); } else if (path.length === 1 && path[0] !== void 0) { return new ir.PropRef([path[0]]); } } return new ir.PropRef(Array.isArray(path) ? path : [String(path)]); } else { const args = []; for (const arg of whereClause.args) { const convertedArg = normalizeExpressionPaths( arg, collectionAlias ); args.push(convertedArg); } return new ir.Func(whereClause.name, args); } } function normalizeOrderByPaths(orderBy, collectionAlias) { const normalizedOrderBy = orderBy.map((clause) => { const basicExp = normalizeExpressionPaths( clause.expression, collectionAlias ); return { ...clause, expression: basicExp }; }); return normalizedOrderBy; } exports.getSourceAliasesFromExpression = getSourceAliasesFromExpression; exports.normalizeExpressionPaths = normalizeExpressionPaths; exports.normalizeOrderByPaths = normalizeOrderByPaths; //# sourceMappingURL=expressions.cjs.map