import _classCallCheck from "@babel/runtime/helpers/classCallCheck"; import _createClass from "@babel/runtime/helpers/createClass"; import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn"; import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf"; import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized"; import _inherits from "@babel/runtime/helpers/inherits"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; import { YAMLSemanticError } from '../../errors'; import _toJSON from '../../toJSON'; import YAMLMap from '../../schema/Map'; import Pair from '../../schema/Pair'; import Scalar from '../../schema/Scalar'; import YAMLSeq from '../../schema/Seq'; import { createPairs, parsePairs } from './pairs'; export var YAMLOMap = /*#__PURE__*/function (_YAMLSeq) { _inherits(YAMLOMap, _YAMLSeq); function YAMLOMap() { var _this; _classCallCheck(this, YAMLOMap); _this = _possibleConstructorReturn(this, _getPrototypeOf(YAMLOMap).call(this)); _defineProperty(_assertThisInitialized(_this), "add", YAMLMap.prototype.add.bind(_assertThisInitialized(_this))); _defineProperty(_assertThisInitialized(_this), "delete", YAMLMap.prototype.delete.bind(_assertThisInitialized(_this))); _defineProperty(_assertThisInitialized(_this), "get", YAMLMap.prototype.get.bind(_assertThisInitialized(_this))); _defineProperty(_assertThisInitialized(_this), "has", YAMLMap.prototype.has.bind(_assertThisInitialized(_this))); _defineProperty(_assertThisInitialized(_this), "set", YAMLMap.prototype.set.bind(_assertThisInitialized(_this))); _this.tag = YAMLOMap.tag; return _this; } _createClass(YAMLOMap, [{ key: "toJSON", value: function toJSON(_, ctx) { var map = new Map(); if (ctx && ctx.onCreate) ctx.onCreate(map); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = this.items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var pair = _step.value; var key = void 0, value = void 0; if (pair instanceof Pair) { key = _toJSON(pair.key, '', ctx); value = _toJSON(pair.value, key, ctx); } else { key = _toJSON(pair, '', ctx); } if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys'); map.set(key, value); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return map; } }]); return YAMLOMap; }(YAMLSeq); _defineProperty(YAMLOMap, "tag", 'tag:yaml.org,2002:omap'); function parseOMap(doc, cst) { var pairs = parsePairs(doc, cst); var seenKeys = []; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = pairs.items[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var key = _step2.value.key; if (key instanceof Scalar) { if (seenKeys.includes(key.value)) { var msg = 'Ordered maps must not include duplicate keys'; throw new YAMLSemanticError(cst, msg); } else { seenKeys.push(key.value); } } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return Object.assign(new YAMLOMap(), pairs); } function createOMap(schema, iterable, ctx) { var pairs = createPairs(schema, iterable, ctx); var omap = new YAMLOMap(); omap.items = pairs.items; return omap; } export default { identify: function identify(value) { return value instanceof Map; }, nodeClass: YAMLOMap, default: false, tag: 'tag:yaml.org,2002:omap', resolve: parseOMap, createNode: createOMap };