UNPKG

flora-exception

Version:

An exception system for FQL.

42 lines (41 loc) 1.11 kB
import { query as q } from "faunadb"; import { $Any } from "../FloraTypes"; export const Select = (path, obj, $Predicate = $Any) => { return q.Select(path, obj); }; /** * Uses a path to perform a nested select, no type checks yet. * @param path * @param expr * @returns */ export const NestedSelect = (path, expr) => { return q.Select(path, expr); }; const EscapeMemberCode = "!"; export const mkDotProxyHandler = (expr) => { return { get: function (target, prop, receiver) { if (target[prop]) { return target[prop]; } const _expr = Object.assign({}, expr); const __expr = Object.assign({}, expr); return new Proxy(Select(prop, _expr), mkDotProxyHandler(Select(prop, __expr))); } }; }; const exprName = "expression"; /** * * @param path * @param obj * @param $Predicate * @returns */ export const Dot = (obj) => { const _expr = Object.assign({}, obj); const __expr = q.If(true, _expr, _expr); const handler = mkDotProxyHandler(__expr); return new Proxy(__expr, handler); };