signalk-merge

Utility to merge two Signal K objects, resolving conflicts using the timestamp of child objects.

Usage no npm install needed!

<script type="module">
  import signalkMerge from 'https://cdn.skypack.dev/signalk-merge';
</script>

README

SignalK-merge

Utility to merge two Signal K objects, resolving conflicts using the timestamp of child objects. Small javascript utility to merge two Signal K objects or merge an child-object into a vessel in an existing Signal K tree. Conflicts are resolved by comparing timestamps.

Installation

npm install signalk-merge

Usage


var merge 	= require('signalk-merge');

/*
    Merge a full signalK object into another.
    Arguments:
        0: full signalk object
        1: full signalk object
*/
var signalk = merge.full(signal_k_object_a, signal_k_object_b);


/*
    Merge a partial 'navigation' object into vessel 'self'.
    Arguments:
        0: full signalk object
        1: vessel identifier or 'self'
        2: object to merge into the vessel
*/
signalk = merge.into(signalk, 'self', {
    "navigation": {
        "state": {
            "timestamp": "",
            "state": "under way sailing"
        }
    }
});

Note: At the moment, it's not possible to merge partial objects into anything else but a vessel. Scheduled for the next release.