Nocturnal Pajama Mutants

    reftools

    1.1.9 • Public • Published

    RefTools

    Functions

    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

    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

    circularClone()

    Source: stackoverflow http://bit.ly/2A1Kha6

    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, options)

    Simply modifies an object to have no 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

    ResultResult

    Try to get a topological sorting out of directed graph.

    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

    Install

    npm i reftools

    DownloadsWeekly Downloads

    659,513

    Version

    1.1.9

    License

    BSD-3-Clause

    Unpacked Size

    32.8 kB

    Total Files

    13

    Last publish

    Collaborators

    • mermade