Package Exports
- reftools
- reftools/lib/clone.js
- reftools/lib/dereference.js
- reftools/lib/jptr.js
- reftools/lib/recurse
- reftools/lib/recurse.js
- reftools/lib/reref.js
- reftools/lib/visit.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (reftools) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Constants
- util
TopoSort function is LICENSE: MIT, everything else is BSD-3-Clause
Functions
- clone(obj) ⇒
clones the given object using JSON.parse and JSON.stringify
- shallowClone(obj) ⇒
clones the given object's properties shallowly, ignores properties from prototype
- deepClone(obj) ⇒
clones the given object's properties deeply, ignores properties from prototype
- fastClone(obj) ⇒
clones the given object's properties shallowly, using Object.assign
- dereference(o) ⇒
dereferences the given object
- flatten(obj, callback) ⇒
flattens an object into an array of properties
- jpescape(s) ⇒
escapes JSON Pointer using ~0 for ~ and ~1 for /
- jpunescape(s) ⇒
unescapes JSON Pointer using ~0 for ~ and ~1 for /
- jptr(obj, prop, newValue) ⇒
from obj, return the property with a JSON Pointer prop, optionally setting it to newValue
- 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
- reref(obj) ⇒
Simply creates an object without self-references by replacing them with $ref pointers
- objToGraph(obj, containerName) ⇒
Takes an object and creates a graph of JSON Pointer / References
- 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
Typedefs
- Result ⇒
Result
Try to get a topological sorting out of directed graph.
util
TopoSort function is LICENSE: MIT, everything else is BSD-3-Clause
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 |
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) ⇒
Simply creates an object without 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 |
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 |