falcor-path-utils v0.7.5
Falcor Path Utils
This repository contains utilities for transforming and manipulating Falcor paths.
Utility functions:
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 akeySetand anoteand attempts to iterate over it.toTree(paths)Convertspathsto a tree with null leaves. (see spec)toPaths(lengths)Converts alengthTreeto paths. (see spec)pathsComplementFromTree(paths, tree)Returns a list of thesepathsthat 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.