| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
-
- var _toJSON = _interopRequireDefault(require("../toJSON"));
-
- var _Collection = _interopRequireDefault(require("./Collection"));
-
- var _Scalar = _interopRequireDefault(require("./Scalar"));
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- // Published as 'yaml/seq'
- function asItemIndex(key) {
- let idx = key instanceof _Scalar.default ? key.value : key;
- if (idx && typeof idx === 'string') idx = Number(idx);
- return Number.isInteger(idx) && idx >= 0 ? idx : null;
- }
-
- class YAMLSeq extends _Collection.default {
- add(value) {
- this.items.push(value);
- }
-
- delete(key) {
- const idx = asItemIndex(key);
- if (typeof idx !== 'number') return false;
- const del = this.items.splice(idx, 1);
- return del.length > 0;
- }
-
- get(key, keepScalar) {
- const idx = asItemIndex(key);
- if (typeof idx !== 'number') return undefined;
- const it = this.items[idx];
- return !keepScalar && it instanceof _Scalar.default ? it.value : it;
- }
-
- has(key) {
- const idx = asItemIndex(key);
- return typeof idx === 'number' && idx < this.items.length;
- }
-
- set(key, value) {
- const idx = asItemIndex(key);
- if (typeof idx !== 'number') throw new Error(`Expected a valid index, not ${key}.`);
- this.items[idx] = value;
- }
-
- toJSON(_, ctx) {
- const seq = [];
- if (ctx && ctx.onCreate) ctx.onCreate(seq);
- let i = 0;
-
- for (const item of this.items) seq.push((0, _toJSON.default)(item, String(i++), ctx));
-
- return seq;
- }
-
- toString(ctx, onComment, onChompKeep) {
- if (!ctx) return JSON.stringify(this);
- return super.toString(ctx, {
- blockItem: n => n.type === 'comment' ? n.str : `- ${n.str}`,
- flowChars: {
- start: '[',
- end: ']'
- },
- isMap: false,
- itemIndent: (ctx.indent || '') + ' '
- }, onComment, onChompKeep);
- }
-
- }
-
- exports.default = YAMLSeq;
|