This repository contains utilities for transforming and manipulating Falcor paths.
* collapse(paths)
Simplifies a set of paths. Example:
~~~js
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 a keySet and a note and attempts to iterate over it.
* toTree(paths)
Converts paths to a tree with null leaves. (see spec)
* toPaths(lengths)
Converts a lengthTree to paths. (see spec)
* pathsComplementFromTree(paths, tree)
Returns a list of these paths that are not in the tree. (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.
~~~js
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"]
~~~