| ; | |
| var YAMLSeq = require('../nodes/YAMLSeq.js'); | |
| var resolveProps = require('./resolve-props.js'); | |
| var utilFlowIndentCheck = require('./util-flow-indent-check.js'); | |
| function resolveBlockSeq({ composeNode, composeEmptyNode }, ctx, bs, onError, tag) { | |
| const NodeClass = tag?.nodeClass ?? YAMLSeq.YAMLSeq; | |
| const seq = new NodeClass(ctx.schema); | |
| if (ctx.atRoot) | |
| ctx.atRoot = false; | |
| if (ctx.atKey) | |
| ctx.atKey = false; | |
| let offset = bs.offset; | |
| let commentEnd = null; | |
| for (const { start, value } of bs.items) { | |
| const props = resolveProps.resolveProps(start, { | |
| indicator: 'seq-item-ind', | |
| next: value, | |
| offset, | |
| onError, | |
| parentIndent: bs.indent, | |
| startOnNewline: true | |
| }); | |
| if (!props.found) { | |
| if (props.anchor || props.tag || value) { | |
| if (value?.type === 'block-seq') | |
| onError(props.end, 'BAD_INDENT', 'All sequence items must start at the same column'); | |
| else | |
| onError(offset, 'MISSING_CHAR', 'Sequence item without - indicator'); | |
| } | |
| else { | |
| commentEnd = props.end; | |
| if (props.comment) | |
| seq.comment = props.comment; | |
| continue; | |
| } | |
| } | |
| const node = value | |
| ? composeNode(ctx, value, props, onError) | |
| : composeEmptyNode(ctx, props.end, start, null, props, onError); | |
| if (ctx.schema.compat) | |
| utilFlowIndentCheck.flowIndentCheck(bs.indent, value, onError); | |
| offset = node.range[2]; | |
| seq.items.push(node); | |
| } | |
| seq.range = [bs.offset, offset, commentEnd ?? offset]; | |
| return seq; | |
| } | |
| exports.resolveBlockSeq = resolveBlockSeq; | |
Xet Storage Details
- Size:
- 1.81 kB
- Xet hash:
- 7934e51de9599b8eaa374b2a51238cff4def1cd7e0cf8c08837882558c3ac592
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.