@graphistry/falcor-path-utils

This repository contains utilities for transforming and manipulating Falcor paths.

Stats

StarsIssuesVersionUpdatedCreatedSize
@graphistry/falcor-path-utils
2422.9.104 years ago5 years agoMinified + gzip package size for @graphistry/falcor-path-utils in KB

Readme

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

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.