Utility functions to deal with references in objects
npm install reftoolsa no-op placeholder which returns the given object unchanged
useful for when a clone function needs to be passed but cloning is not
required
clones the given object using JSON.parse and JSON.stringify
clones the given object's properties shallowly, ignores properties from prototype
clones the given object's properties deeply, ignores properties from prototype
clones the given object's properties shallowly, using Object.assign
Source: stackoverflow http://bit.ly/2A1Kha6
dereferences the given object
flattens an object into an array of properties
escapes JSON Pointer using ~0 for ~ and ~1 for /
unescapes JSON Pointer using ~0 for ~ and ~1 for /
from obj, return the property with a JSON Pointer prop, optionally setting it
to newValue
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
Simply modifies an object to have no self-references by replacing them
with $ref pointers
Takes an object and creates a graph of JSON Pointer / References
Given an expanded object and an optional object to compare to (e.g. its $ref'd form), will call
the following functions:
Kind: global function
Returns: the input object, unchanged
| Param | Description |
| --- | --- |
| obj | the input object |
Kind: global function
Returns: the cloned object
| Param | Description |
| --- | --- |
| obj | the object to clone |
Kind: global function
Returns: the cloned object
| Param | Description |
| --- | --- |
| obj | the object to clone |
Kind: global function
Returns: the cloned object
| Param | Description |
| --- | --- |
| obj | the object to clone |
Kind: global function
Returns: the cloned object
| Param | Description |
| --- | --- |
| obj | the object to clone |
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 |
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) |
Kind: global function
Returns: the escaped string
| Param | Description |
| --- | --- |
| s | the string to escape |
Kind: global function
Returns: the unescaped string
| Param | Description |
| --- | --- |
| s | the string to unescape |
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 |
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 |
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 |
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 |
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 |
ResultKind: 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 |