cjs/index.js
function updateMap(ast, newJson, json, yaml) {

  // look for changes
  (0, _lodash.each)(ast.value, function (pair) {
    var _pair = _slicedToArray(pair, 2);

    var keyNode = _pair[0];
    var valNode = _pair[1];

    // node is deleted
    if ((0, _lodash.isUndefined)(newJson[keyNode.value])) {

      // TODO: can we use of the methods below?
      yaml = yaml.substr(0, keyNode.start_mark.pointer) + yaml.substring(getNodeEndMark(valNode).pointer);
      return;
    }

    var value = json[keyNode.value];
    var newValue = newJson[keyNode.value];

    // primitive value has changed
    if (newValue !== value && !(0, _lodash.isArray)(valNode.value)) {

      // replace the value node
      yaml = replacePrimitive(valNode, newValue, yaml);

      // remove the key/value from newJson so it's not detected as new pair in
      // later code
      delete newJson[keyNode.value];
    }

    // non primitive value has changed
    if (!(0, _lodash.isEqual)(newValue, value) && (0, _lodash.isArray)(valNode.value)) {

      // array value has changed
      if ((0, _lodash.isArray)(newValue)) {

        // recurse
        yaml = updateSeq(valNode, newValue, yaml);

        // map value has changed
      } else {

          // recurse
          yaml = updateMap(valNode, newValue, value, yaml);

          ast = (0, _yamlJs.compose)(yaml);

          // remove the key/value from newJson so it's not detected as new pair in
          // later code
          delete newJson[keyNode.value];
        }
    }
  });

  // look for new items to add
  (0, _lodash.each)(newJson, function (value, key) {

    // item is new
    if ((0, _lodash.isUndefined)(json[key])) {
      var newValue = cleanDump(_defineProperty({}, key, value));

      yaml = insertAfterNode(ast, newValue, yaml);
    }
  });

  return yaml;
}
function updateMap(ast, newJson, json, yaml) {

  // look for changes
  (0, _lodash.each)(ast.value, function (pair) {
    var _pair = _slicedToArray(pair, 2);

    var keyNode = _pair[0];
    var valNode = _pair[1];

    // node is deleted
    if ((0, _lodash.isUndefined)(newJson[keyNode.value])) {

      // TODO: can we use of the methods below?
      yaml = yaml.substr(0, keyNode.start_mark.pointer) + yaml.substring(getNodeEndMark(valNode).pointer);
      return;
    }

    var value = json[keyNode.value];
    var newValue = newJson[keyNode.value];

    // primitive value has changed
    if (newValue !== value && !(0, _lodash.isArray)(valNode.value)) {

      // replace the value node
      yaml = replacePrimitive(valNode, newValue, yaml);

      // remove the key/value from newJson so it's not detected as new pair in
      // later code
      delete newJson[keyNode.value];
    }

    // non primitive value has changed
    if (!(0, _lodash.isEqual)(newValue, value) && (0, _lodash.isArray)(valNode.value)) {

      // array value has changed
      if ((0, _lodash.isArray)(newValue)) {

        // recurse
        yaml = updateSeq(valNode, newValue, yaml);

        // map value has changed
      } else {

          // recurse
          yaml = updateMap(valNode, newValue, value, yaml);

          ast = (0, _yamlJs.compose)(yaml);

          // remove the key/value from newJson so it's not detected as new pair in
          // later code
          delete newJson[keyNode.value];
        }
    }
  });

  // look for new items to add
  (0, _lodash.each)(newJson, function (value, key) {

    // item is new
    if ((0, _lodash.isUndefined)(json[key])) {
      var newValue = cleanDump(_defineProperty({}, key, value));

      yaml = insertAfterNode(ast, newValue, yaml);
    }
  });

  return yaml;
}
function updateMap ( ast , newJson , json , yaml ) { // look for changes ( 0 , _lodash . each ) ( ast . value , function ( pair ) { var _pair = _slicedToArray ( pair , 2 ) ; var keyNode = _pair [ 0 ] ; var valNode = _pair [ 1 ] ; // node is deleted if ( ( 0 , _lodash . isUndefined ) ( newJson [ keyNode . value ] ) ) { // TODO: can we use of the methods below? yaml = yaml . substr ( 0 , keyNode . start_mark . pointer ) + yaml . substring ( getNodeEndMark ( valNode ) . pointer ) ; return ; } var value = json [ keyNode . value ] ; var newValue = newJson [ keyNode . value ] ; // primitive value has changed if ( newValue !== value && ! ( 0 , _lodash . isArray ) ( valNode . value ) ) { // replace the value node yaml = replacePrimitive ( valNode , newValue , yaml ) ; // remove the key/value from newJson so it's not detected as new pair in // later code delete newJson [ keyNode . value ] ; } // non primitive value has changed if ( ! ( 0 , _lodash . isEqual ) ( newValue , value ) && ( 0 , _lodash . isArray ) ( valNode . value ) ) { // array value has changed if ( ( 0 , _lodash . isArray ) ( newValue ) ) { // recurse yaml = updateSeq ( valNode , newValue , yaml ) ; // map value has changed } else { // recurse yaml = updateMap ( valNode , newValue , value , yaml ) ; ast = ( 0 , _yamlJs . compose ) ( yaml ) ; // remove the key/value from newJson so it's not detected as new pair in // later code delete newJson [ keyNode . value ] ; } } } ) ; // look for new items to add ( 0 , _lodash . each ) ( newJson , function ( value , key ) { // item is new if ( ( 0 , _lodash . isUndefined ) ( json [ key ] ) ) { var newValue = cleanDump ( _defineProperty ( { } , key , value ) ) ; yaml = insertAfterNode ( ast , newValue , yaml ) ; } } ) ; return yaml ; }
/*
update a map structure with new values

@param {AST} ast - a map AST
@param {any} newJson
@param {any} - json
@param {string} yaml
@returns {boolean}
@throws {YAWNError} - if json has weird type
/ * update a map structure with new values