| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- "use strict";
-
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- 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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
-
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
-
- var _addComment = _interopRequireDefault(require("../addComment"));
-
- var _constants = require("../constants");
-
- var _toJSON = _interopRequireDefault(require("../toJSON"));
-
- var _Collection = _interopRequireDefault(require("./Collection"));
-
- var _Node2 = _interopRequireDefault(require("./Node"));
-
- var _Scalar = _interopRequireDefault(require("./Scalar"));
-
- // Published as 'yaml/pair'
- var stringifyKey = function stringifyKey(key, jsKey, ctx) {
- if (jsKey === null) return '';
- if ((0, _typeof2.default)(jsKey) !== 'object') return String(jsKey);
- if (key instanceof _Node2.default && ctx && ctx.doc) return key.toString({
- anchors: {},
- doc: ctx.doc,
- indent: '',
- inFlow: true,
- inStringifyKey: true
- });
- return JSON.stringify(jsKey);
- };
-
- var Pair =
- /*#__PURE__*/
- function (_Node) {
- (0, _inherits2.default)(Pair, _Node);
-
- function Pair(key) {
- var _this;
-
- var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
- (0, _classCallCheck2.default)(this, Pair);
- _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Pair).call(this));
- _this.key = key;
- _this.value = value;
- _this.type = 'PAIR';
- return _this;
- }
-
- (0, _createClass2.default)(Pair, [{
- key: "addToJSMap",
- value: function addToJSMap(ctx, map) {
- var key = (0, _toJSON.default)(this.key, '', ctx);
-
- if (map instanceof Map) {
- var value = (0, _toJSON.default)(this.value, key, ctx);
- map.set(key, value);
- } else if (map instanceof Set) {
- map.add(key);
- } else {
- var stringKey = stringifyKey(this.key, key, ctx);
- map[stringKey] = (0, _toJSON.default)(this.value, stringKey, ctx);
- }
-
- return map;
- }
- }, {
- key: "toJSON",
- value: function toJSON(_, ctx) {
- var pair = ctx && ctx.mapAsMap ? new Map() : {};
- return this.addToJSMap(ctx, pair);
- }
- }, {
- key: "toString",
- value: function toString(ctx, onComment, onChompKeep) {
- if (!ctx || !ctx.doc) return JSON.stringify(this);
- var simpleKeys = ctx.doc.options.simpleKeys;
- var key = this.key,
- value = this.value;
- var keyComment = key instanceof _Node2.default && key.comment;
-
- if (simpleKeys) {
- if (keyComment) {
- throw new Error('With simple keys, key nodes cannot have comments');
- }
-
- if (key instanceof _Collection.default) {
- var msg = 'With simple keys, collection cannot be used as a key value';
- throw new Error(msg);
- }
- }
-
- var explicitKey = !simpleKeys && (!key || keyComment || key instanceof _Collection.default || key.type === _constants.Type.BLOCK_FOLDED || key.type === _constants.Type.BLOCK_LITERAL);
- var _ctx = ctx,
- doc = _ctx.doc,
- indent = _ctx.indent;
- ctx = Object.assign({}, ctx, {
- implicitKey: !explicitKey,
- indent: indent + ' '
- });
- var chompKeep = false;
- var str = doc.schema.stringify(key, ctx, function () {
- return keyComment = null;
- }, function () {
- return chompKeep = true;
- });
- str = (0, _addComment.default)(str, ctx.indent, keyComment);
-
- if (ctx.allNullValues && !simpleKeys) {
- if (this.comment) {
- str = (0, _addComment.default)(str, ctx.indent, this.comment);
- if (onComment) onComment();
- } else if (chompKeep && !keyComment && onChompKeep) onChompKeep();
-
- return ctx.inFlow ? str : "? ".concat(str);
- }
-
- str = explicitKey ? "? ".concat(str, "\n").concat(indent, ":") : "".concat(str, ":");
-
- if (this.comment) {
- // expected (but not strictly required) to be a single-line comment
- str = (0, _addComment.default)(str, ctx.indent, this.comment);
- if (onComment) onComment();
- }
-
- var vcb = '';
- var valueComment = null;
-
- if (value instanceof _Node2.default) {
- if (value.spaceBefore) vcb = '\n';
-
- if (value.commentBefore) {
- var cs = value.commentBefore.replace(/^/gm, "".concat(ctx.indent, "#"));
- vcb += "\n".concat(cs);
- }
-
- valueComment = value.comment;
- } else if (value && (0, _typeof2.default)(value) === 'object') {
- value = doc.schema.createNode(value, true);
- }
-
- ctx.implicitKey = false;
- chompKeep = false;
- var valueStr = doc.schema.stringify(value, ctx, function () {
- return valueComment = null;
- }, function () {
- return chompKeep = true;
- });
- var ws = ' ';
-
- if (vcb || this.comment) {
- ws = "".concat(vcb, "\n").concat(ctx.indent);
- } else if (!explicitKey && value instanceof _Collection.default) {
- var flow = valueStr[0] === '[' || valueStr[0] === '{';
- if (!flow || valueStr.includes('\n')) ws = "\n".concat(ctx.indent);
- }
-
- if (chompKeep && !valueComment && onChompKeep) onChompKeep();
- return (0, _addComment.default)(str + ws + valueStr, ctx.indent, valueComment);
- }
- }, {
- key: "commentBefore",
- get: function get() {
- return this.key && this.key.commentBefore;
- },
- set: function set(cb) {
- if (this.key == null) this.key = new _Scalar.default(null);
- this.key.commentBefore = cb;
- }
- }]);
- return Pair;
- }(_Node2.default);
-
- exports.default = Pair;
|