EQL helper functions.
Functions that take and return AST will be suffixed with a *. Functions
without a * suffix tend to take and return EQL queries.
EQL helper functions. Functions that take and return AST will be suffixed with a `*`. Functions without a `*` suffix tend to take and return EQL queries.
(apply-transform query m opts)See apply-transform*.
See [[apply-transform*]].
(apply-transform*
ast
m
{:keys [rf node-key-fn] :or {node-key-fn :dispatch-key} :as opts})Calls rf for every kv in m. Recursively follows paths when the path exists
in ast. node-key-fn determines how a node is uniquely identified, defaulting
to the node's :dispatch-key.
rf is passed the current accumulated map and a map of the following keys.
:key - the key in m
:value - the value in m
:node - the node at the path for the kv pair.
Calls `rf` for every kv in m. Recursively follows paths when the path exists in `ast`. `node-key-fn` determines how a node is uniquely identified, defaulting to the node's `:dispatch-key`. `rf` is passed the current accumulated map and a map of the following keys. `:key` - the key in `m` `:value` - the value in `m` `:node` - the node at the path for the kv pair.
(ast->datomic-pull ast)(ast->datomic-pull ast
{:keys [select-params]
:or {select-params default-datomic-pull-select-params}})(datomic-pull->ast pull-pattern)(datomic-pull->ast pull-pattern _)(datomic-pull->query pull-pattern)(datomic-pull->query pull-pattern opts)See datomic-pull->ast.
See [[datomic-pull->ast]].
(default-datomic-pull-select-params node)Default select-params function used in ast->datomic-pull to select
the Datomic keys from a node.
Default `select-params` function used in [[ast->datomic-pull]] to select the Datomic keys from a node.
(difference-query source-query not-query)See difference-query*.
See [[difference-query*]].
(difference-query* source-ast not-ast)Filters source-ast by removing any paths in not-ast. Similar to a set
difference.
Filters `source-ast` by removing any paths in `not-ast`. Similar to a set difference.
(map-select* ast m)Filters m by the ast. Similar to select-keys or Datomic pull.
Filters `m` by the `ast`. Similar to `select-keys` or Datomic pull.
(merge-many-queries queries)(merge-many-queries queries opts)See merge-many-queries*.
See [[merge-many-queries*]].
(merge-many-queries* asts)(merge-many-queries* asts opts)Merges many asts via merge-queries*.
Merges many `asts` via [[merge-queries*]].
(merge-queries* ast1 ast2)(merge-queries* ast1 ast2 {:keys [merge-params] :or {merge-params merge}})Merges ast1 and ast2 node maps recursively. Similar to eql/merge-asts, but
allows overriding default merge behaviors (e.g., EQL parameters get merged).
Takes an options map with the following keys:
:merge-params - a function taking two node params maps and returns a single,
merged param map. Defaults to merge.
Merges `ast1` and `ast2` node maps recursively. Similar to eql/merge-asts, but
allows overriding default merge behaviors (e.g., EQL parameters get merged).
Takes an options map with the following keys:
`:merge-params` - a function taking two node params maps and returns a single,
merged param map. Defaults to `merge`.(query->datomic-pull query)(query->datomic-pull query opts)See ast->datomic-pull.
See [[ast->datomic-pull]].
(split* input-ast range-ast)Returns a tuple of ASTs where the first element does not contain any idents
specified in range-ast, and the second element contains at most all the
elements specified in range-ast.
Returns a tuple of ASTs where the first element does not contain any idents specified in `range-ast`, and the second element contains at most all the elements specified in `range-ast`.
(top-level-keys query)See top-level-keys*.
See [[top-level-keys*]].
(top-level-keys* ast)Returns the top-level (children at root level) dispatch-key in ast.
Returns the top-level (children at root level) `dispatch-key` in `ast`.
(transform-rename-rf {:keys [get-new-key]})rf function for use with apply-transform* that renames map keys using
data on the AST node.
rf function for use with [[apply-transform*]] that renames map keys using data on the AST node.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |