reftools
v1.1.9
Published
Utility functions to deal with references in objects
Downloads
5,956,997
Maintainers
Readme
RefTools
Functions
Typedefs
nop(obj) ⇒
a no-op placeholder which returns the given object unchanged useful for when a clone function needs to be passed but cloning is not required
Kind: global function
Returns: the input object, unchanged
| Param | Description | | --- | --- | | obj | the input object |
clone(obj) ⇒
clones the given object using JSON.parse and JSON.stringify
Kind: global function
Returns: the cloned object
| Param | Description | | --- | --- | | obj | the object to clone |
shallowClone(obj) ⇒
clones the given object's properties shallowly, ignores properties from prototype
Kind: global function
Returns: the cloned object
| Param | Description | | --- | --- | | obj | the object to clone |
deepClone(obj) ⇒
clones the given object's properties deeply, ignores properties from prototype
Kind: global function
Returns: the cloned object
| Param | Description | | --- | --- | | obj | the object to clone |
fastClone(obj) ⇒
clones the given object's properties shallowly, using Object.assign
Kind: global function
Returns: the cloned object
| Param | Description | | --- | --- | | obj | the object to clone |
circularClone()
Source: stackoverflow http://bit.ly/2A1Kha6
Kind: global function
dereference(o) ⇒
dereferences the given object
Kind: global function
Returns: the dereferenced object
Definitions: a source of definitions to reference
Options: optional settings (used recursively)
| Param | Description | | --- | --- | | o | the object to dereference |
flatten(obj, callback) ⇒
flattens an object into an array of properties
Kind: global function
Returns: the flattened object as an array of properties
| Param | Description | | --- | --- | | obj | the object to flatten | | callback | a function which can mutate or filter the entries (by returning null) |
jpescape(s) ⇒
escapes JSON Pointer using ~0 for ~ and ~1 for /
Kind: global function
Returns: the escaped string
| Param | Description | | --- | --- | | s | the string to escape |
jpunescape(s) ⇒
unescapes JSON Pointer using ~0 for ~ and ~1 for /
Kind: global function
Returns: the unescaped string
| Param | Description | | --- | --- | | s | the string to unescape |
jptr(obj, prop, newValue) ⇒
from obj, return the property with a JSON Pointer prop, optionally setting it to newValue
Kind: global function
Returns: the found property, or false
| Param | Description | | --- | --- | | obj | the object to point into | | prop | the JSON Pointer or JSON Reference | | newValue | optional value to set the property to |
recurse(object, state, callback)
recurses through the properties of an object, given an optional starting state anything you pass in state.payload is passed to the callback each time
Kind: global function
| Param | Description | | --- | --- | | object | the object to recurse through | | state | optional starting state, can be set to null or | | callback | the function which receives object,key,state on each property |
reref(obj, options) ⇒
Simply modifies an object to have no self-references by replacing them with $ref pointers
Kind: global function
Returns: the re-referenced object (mutated)
| Param | Description | | --- | --- | | obj | the object to re-reference | | options | may contain a prefix property for the generated refs |
objToGraph(obj, containerName) ⇒
Takes an object and creates a graph of JSON Pointer / References
Kind: global function
Returns: the graph suitable for passing to toposort()
| Param | Description | | --- | --- | | obj | the object to convert | | containerName | the property containing definitions. Default: definitions |
visit(obj, comparison, callbacks) ⇒
Given an expanded object and an optional object to compare to (e.g. its $ref'd form), will call the following functions:
- callbacks.before - lets you modify the initial starting state, must return it
- callbacks.where - lets you select a subset of properties, return a truthy value
- callbacks.filter - called for all selected properties, can mutate/remove (by setting to undefined)
- callbacks.compare - allowing the objects to be compared by path (i.e. for $ref reinstating)
- callbacks.identity - called on any object identity (previously seen) properties
- callbacks.selected - called for all selected/unfiltered properties, does not mutate directly
- callbacks.count - called at the end with the number of selected properties
- callbacks.finally - called at the end of the traversal
Kind: global function
Returns: the possibly mutated object
| Param | Description | | --- | --- | | obj | the object to visit | | comparison | optional object to compare to | | callbacks | object containing functions as above |
Result ⇒ Result
Try to get a topological sorting out of directed graph.
Kind: global typedef
| Param | Type | Description | | --- | --- | --- | | nodes | Object | A list of nodes, including edges (see below). |
Properties
| Name | Type | Description | | --- | --- | --- | | sort | array | the sort, empty if not found | | nodesWithEdges, | array | will be empty unless a cycle is found |