Skip to content

sebinsua/get-object-paths

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

get-object-paths

Build Status npm version

Transforms collections describing paths into arrays of paths.

NOTE: Currently this module does not have any checks or protections against (1) cycles in a graph, and (2) stack overflows. Please use it only if you have control of the data enough to know that none of these issues will be a problem.

Installation

npm install [--save] get-object-paths;

Usage

var getObjectPaths = require('get-object-paths')();

var obj = {
  'a': 'b',
  'b': 'c',
  'c': 'd',
  'd': 'e',
  'e': ['f', 'g', 'h'],
  'f': 'g',
  'g': 'i',
  'h': 'j',
  'i': 'end',
  'j': 'k',
  'k': 'l',
  'l': 'end',
  'end': null
};
var startPath = 'a';

var simplePaths = getObjectPaths(obj, startPath);
// Gives:
// [
//   ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'end'],
//   ['a', 'b', 'c', 'd', 'e', 'g', 'i', 'end'],
//   ['a', 'b', 'c', 'd', 'e', 'h', 'j', 'k', 'l', 'end']
// ]

The module has a single options argument which you can use to pass in options.get, options.to and options.represent.

options.get is meant to return the nodes a key points to. It accepts a function with this signature (col, key).

options.to is mean to return the nodes a key points to. It accepts the node and can return any of its properties.

options.id is meant to convert between the key of a node and a representation of the node (e.g. an identifier). It accepts a function with this signature (el).

About

Transforms collections describing paths into arrays of paths.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published