0.7.5 • Published 4 years ago

falcor-path-utils v0.7.5

Weekly downloads
1,181
License
Apache-2.0
Repository
github
Last release
4 years ago

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