GithubHelp home page GithubHelp logo

lrowe / falcor-path-utils Goto Github PK

View Code? Open in Web Editor NEW

This project forked from netflix/falcor-path-utils

0.0 2.0 0.0 30 KB

A collection of utilities for manipulating Falcor Paths.

Home Page: http://netflix.github.com/falcor

JavaScript 100.00%

falcor-path-utils's Introduction

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

falcor-path-utils's People

Contributors

jhusain avatar mik01aj avatar sdesai avatar theprimeagen avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.