@universal-packages/object-navigation
v1.1.0
Published
Object navigation tools to reach and analyze a path to an object property.
Downloads
3,877
Readme
Object Navigation
Object navigation tools to reach and analyze a path to an object property.
Install
npm install @universal-packages/object-navigation
Global methods
navigateObject(subject: Object, path: string | string[], [options])
subject
Object
The object to navigatepath
string | string[]
The path to navigateoptions
NavigateOptions
buildToTarget
boolean
If the intermediary nodes to get to the target does not exist, they will be created.separator
boolean
default: '/'
The separator to use to split the path into elements.
Will go deeply into the object and return a structure describing the traverse strategy to get to the target.
import { navigateObject } from '@universal-packages/object-navigation'
const objectToNavigate = {
a: {
b: {
c: {
d: {
value: 'value'
}
}
}
}
}
const result = navigateObject(objectToNavigate, 'a/b/c/d/value')
const value = result.targetNode[result.targetKey]
A result of the navigation will look like this:
const result = {
elements: ['a', 'b', 'c', 'd', 'value'],
path: 'a/b/c/d/value',
pathTraverse: [
{
path: 'a',
node: {
b: {
c: {
d: {
value: 'value'
}
}
}
},
created: false
},
{
path: 'a/b',
node: {
c: {
d: {
value: 'value'
}
}
},
created: false
},
{
path: 'a/b/c',
node: {
d: {
value: 'value'
}
},
created: false
},
{
path: 'a/b/c/d',
node: {
value: 'value'
},
created: false
}
],
targetKey: 'value',
targetNode: {
value: 'value'
},
targetNodeIsRoot: false,
error: false
}
resolvePath(path: string | string[], separator: string)
path
string | string[]
The path to resolveseparator
string
default: '/'
The separator to use to split the path into elements.
Will return a clean string path without repeated separators nor trailing separators. It will join the path to a string if the path is provided as a string array.
deconstructPath(path: string | string[], separator: string)
path
string | string[]
The path to deconstructseparator
string
default: '/'
The separator to use to split the path into elements.
Will return an array of strings with the elements of the path.
Typescript
This library is developed in TypeScript and shipped fully typed.
Contributing
The development of this library happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving this library.