Dashboard sipadu mbip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Merge.js 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = exports.MERGE_KEY = void 0;
  7. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  8. var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
  9. var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
  10. var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
  11. var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
  12. var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
  13. var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
  14. var _Map = _interopRequireDefault(require("./Map"));
  15. var _Pair2 = _interopRequireDefault(require("./Pair"));
  16. var _Scalar = _interopRequireDefault(require("./Scalar"));
  17. var _Seq = _interopRequireDefault(require("./Seq"));
  18. var MERGE_KEY = '<<';
  19. exports.MERGE_KEY = MERGE_KEY;
  20. var Merge =
  21. /*#__PURE__*/
  22. function (_Pair) {
  23. (0, _inherits2.default)(Merge, _Pair);
  24. function Merge(pair) {
  25. var _this;
  26. (0, _classCallCheck2.default)(this, Merge);
  27. if (pair instanceof _Pair2.default) {
  28. var seq = pair.value;
  29. if (!(seq instanceof _Seq.default)) {
  30. seq = new _Seq.default();
  31. seq.items.push(pair.value);
  32. seq.range = pair.value.range;
  33. }
  34. _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Merge).call(this, pair.key, seq));
  35. _this.range = pair.range;
  36. } else {
  37. _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Merge).call(this, new _Scalar.default(MERGE_KEY), new _Seq.default()));
  38. }
  39. _this.type = 'MERGE_PAIR';
  40. return (0, _possibleConstructorReturn2.default)(_this);
  41. } // If the value associated with a merge key is a single mapping node, each of
  42. // its key/value pairs is inserted into the current mapping, unless the key
  43. // already exists in it. If the value associated with the merge key is a
  44. // sequence, then this sequence is expected to contain mapping nodes and each
  45. // of these nodes is merged in turn according to its order in the sequence.
  46. // Keys in mapping nodes earlier in the sequence override keys specified in
  47. // later mapping nodes. -- http://yaml.org/type/merge.html
  48. (0, _createClass2.default)(Merge, [{
  49. key: "addToJSMap",
  50. value: function addToJSMap(ctx, map) {
  51. var _iteratorNormalCompletion = true;
  52. var _didIteratorError = false;
  53. var _iteratorError = undefined;
  54. try {
  55. for (var _iterator = this.value.items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  56. var source = _step.value.source;
  57. if (!(source instanceof _Map.default)) throw new Error('Merge sources must be maps');
  58. var srcMap = source.toJSON(null, ctx, Map);
  59. var _iteratorNormalCompletion2 = true;
  60. var _didIteratorError2 = false;
  61. var _iteratorError2 = undefined;
  62. try {
  63. for (var _iterator2 = srcMap[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
  64. var _step2$value = (0, _slicedToArray2.default)(_step2.value, 2),
  65. key = _step2$value[0],
  66. value = _step2$value[1];
  67. if (map instanceof Map) {
  68. if (!map.has(key)) map.set(key, value);
  69. } else if (map instanceof Set) {
  70. map.add(key);
  71. } else {
  72. if (!Object.prototype.hasOwnProperty.call(map, key)) map[key] = value;
  73. }
  74. }
  75. } catch (err) {
  76. _didIteratorError2 = true;
  77. _iteratorError2 = err;
  78. } finally {
  79. try {
  80. if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
  81. _iterator2.return();
  82. }
  83. } finally {
  84. if (_didIteratorError2) {
  85. throw _iteratorError2;
  86. }
  87. }
  88. }
  89. }
  90. } catch (err) {
  91. _didIteratorError = true;
  92. _iteratorError = err;
  93. } finally {
  94. try {
  95. if (!_iteratorNormalCompletion && _iterator.return != null) {
  96. _iterator.return();
  97. }
  98. } finally {
  99. if (_didIteratorError) {
  100. throw _iteratorError;
  101. }
  102. }
  103. }
  104. return map;
  105. }
  106. }, {
  107. key: "toString",
  108. value: function toString(ctx, onComment) {
  109. var seq = this.value;
  110. if (seq.items.length > 1) return (0, _get2.default)((0, _getPrototypeOf2.default)(Merge.prototype), "toString", this).call(this, ctx, onComment);
  111. this.value = seq.items[0];
  112. var str = (0, _get2.default)((0, _getPrototypeOf2.default)(Merge.prototype), "toString", this).call(this, ctx, onComment);
  113. this.value = seq;
  114. return str;
  115. }
  116. }]);
  117. return Merge;
  118. }(_Pair2.default);
  119. exports.default = Merge;