Dashboard sipadu mbip
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _toJSON = _interopRequireDefault(require("../toJSON"));
  7. var _Collection = _interopRequireDefault(require("./Collection"));
  8. var _Scalar = _interopRequireDefault(require("./Scalar"));
  9. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  10. // Published as 'yaml/seq'
  11. function asItemIndex(key) {
  12. let idx = key instanceof _Scalar.default ? key.value : key;
  13. if (idx && typeof idx === 'string') idx = Number(idx);
  14. return Number.isInteger(idx) && idx >= 0 ? idx : null;
  15. }
  16. class YAMLSeq extends _Collection.default {
  17. add(value) {
  18. this.items.push(value);
  19. }
  20. delete(key) {
  21. const idx = asItemIndex(key);
  22. if (typeof idx !== 'number') return false;
  23. const del = this.items.splice(idx, 1);
  24. return del.length > 0;
  25. }
  26. get(key, keepScalar) {
  27. const idx = asItemIndex(key);
  28. if (typeof idx !== 'number') return undefined;
  29. const it = this.items[idx];
  30. return !keepScalar && it instanceof _Scalar.default ? it.value : it;
  31. }
  32. has(key) {
  33. const idx = asItemIndex(key);
  34. return typeof idx === 'number' && idx < this.items.length;
  35. }
  36. set(key, value) {
  37. const idx = asItemIndex(key);
  38. if (typeof idx !== 'number') throw new Error(`Expected a valid index, not ${key}.`);
  39. this.items[idx] = value;
  40. }
  41. toJSON(_, ctx) {
  42. const seq = [];
  43. if (ctx && ctx.onCreate) ctx.onCreate(seq);
  44. let i = 0;
  45. for (const item of this.items) seq.push((0, _toJSON.default)(item, String(i++), ctx));
  46. return seq;
  47. }
  48. toString(ctx, onComment, onChompKeep) {
  49. if (!ctx) return JSON.stringify(this);
  50. return super.toString(ctx, {
  51. blockItem: n => n.type === 'comment' ? n.str : `- ${n.str}`,
  52. flowChars: {
  53. start: '[',
  54. end: ']'
  55. },
  56. isMap: false,
  57. itemIndent: (ctx.indent || '') + ' '
  58. }, onComment, onChompKeep);
  59. }
  60. }
  61. exports.default = YAMLSeq;