This repository contains utilities for transforming and manipulating Falcor paths.
-
collapse(paths)
Simplifies a set of paths. Example:var util = require("falcor-path-utils"); var collapsedPaths = util.collapse([ ["genres", 0, "titles", 0, "name"], ["genres", 0, "titles", 0, "rating"], ["genres", 0, "titles", 1, "name"], ["genres", 0, "titles", 1, "rating"] ]); // collapsed paths is ["genres", 0, "titles", {from: 0, to: 1}, ["name", "rating"]]
-
iterateKeySet(keySet, note)
Takes in akeySet
and anote
and attempts to iterate over it. -
toTree(paths)
Convertspaths
to a tree with null leaves. (see spec) -
toPaths(lengths)
Converts alengthTree
to paths. (see spec) -
pathsComplementFromTree(paths, tree)
Returns a list of thesepaths
that are not in thetree
. (see spec) -
pathsComplementFromLengthTree(paths, lengthTree)
Like above, but for use with length tree. -
hasIntersection(tree, path, depth)
Tests to see if the intersection should be stripped from the total paths. -
optimizePathSets(cache, paths, maxRefFollow)
(see spec) -
pathCount(pathSet)
Returns the number of paths in a PathSet.var util = require("falcor-path-utils"); console.log(util.pathCount(["titlesById", [512, 628], ["name","rating"]])) // prints 4, because ["titlesById", [512, 628], ["name","rating"]] contains... // ["titlesById", 512, "name"] // ["titlesById", 512, "rating"] // ["titlesById", 628, "name"] // ["titlesById", 628, "rating"]
-
escape(string)
Escapes untrusted input to make it safe to include in a path. -
unescape(string)
Unescapes a string encoded with escape. -
materialize(pathSet, value)
Construct a JsonGraph of value at pathSet paths.