Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

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 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.

    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"]