"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.findPair = findPair; exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _Collection2 = _interopRequireDefault(require("./Collection")); var _Pair = _interopRequireDefault(require("./Pair")); var _Scalar = _interopRequireDefault(require("./Scalar")); function findPair(items, key) { var k = key instanceof _Scalar.default ? key.value : key; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var it = _step.value; if (it instanceof _Pair.default) { if (it.key === key || it.key === k) return it; if (it.key && it.key.value === k) return it; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return undefined; } var YAMLMap = /*#__PURE__*/ function (_Collection) { (0, _inherits2.default)(YAMLMap, _Collection); function YAMLMap() { (0, _classCallCheck2.default)(this, YAMLMap); return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(YAMLMap).apply(this, arguments)); } (0, _createClass2.default)(YAMLMap, [{ key: "add", value: function add(pair) { if (!pair) pair = new _Pair.default(pair);else if (!(pair instanceof _Pair.default)) pair = new _Pair.default(pair.key || pair, pair.value); var prev = findPair(this.items, pair.key); if (prev) throw new Error("Key ".concat(pair.key, " already set")); this.items.push(pair); } }, { key: "delete", value: function _delete(key) { var it = findPair(this.items, key); if (!it) return false; var del = this.items.splice(this.items.indexOf(it), 1); return del.length > 0; } }, { key: "get", value: function get(key, keepScalar) { var it = findPair(this.items, key); var node = it && it.value; return !keepScalar && node instanceof _Scalar.default ? node.value : node; } }, { key: "has", value: function has(key) { return !!findPair(this.items, key); } }, { key: "set", value: function set(key, value) { var prev = findPair(this.items, key); if (prev) prev.value = value;else this.items.push(new _Pair.default(key, value)); } /** * @param {*} arg ignored * @param {*} ctx Conversion context, originally set in Document#toJSON() * @param {Class} Type If set, forces the returned collection type * @returns {*} Instance of Type, Map, or Object */ }, { key: "toJSON", value: function toJSON(_, ctx, Type) { var map = Type ? new Type() : ctx && ctx.mapAsMap ? new Map() : {}; if (ctx && ctx.onCreate) ctx.onCreate(map); var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = this.items[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var item = _step2.value; item.addToJSMap(ctx, map); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return map; } }, { key: "toString", value: function toString(ctx, onComment, onChompKeep) { if (!ctx) return JSON.stringify(this); var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = this.items[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var item = _step3.value; if (!(item instanceof _Pair.default)) throw new Error("Map items must all be pairs; found ".concat(JSON.stringify(item), " instead")); } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return != null) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } return (0, _get2.default)((0, _getPrototypeOf2.default)(YAMLMap.prototype), "toString", this).call(this, ctx, { blockItem: function blockItem(n) { return n.str; }, flowChars: { start: '{', end: '}' }, isMap: true, itemIndent: ctx.indent || '' }, onComment, onChompKeep); } }]); return YAMLMap; }(_Collection2.default); exports.default = YAMLMap;