yaml-unist-parser
Version:
A YAML parser that produces output compatible with unist
18 lines (17 loc) • 1.1 kB
JavaScript
import { createPosition } from "../factories/position.js";
import { createSequence } from "../factories/sequence.js";
import { createSequenceItem } from "../factories/sequence-item.js";
import { extractComments } from "../utils/extract-comments.js";
import { extractPropComments } from "../utils/extract-prop-comments.js";
import { getLast } from "../utils/get-last.js";
export function transformSeq(seq, context) {
const cstItemsWithoutComments = extractComments(seq.cstNode.items, context);
const sequenceItems = cstItemsWithoutComments.map((cstItem, index) => {
extractPropComments(cstItem, context);
const item = context.transformNode(seq.items[index]);
return createSequenceItem(createPosition(context.transformOffset(cstItem.valueRange.origStart), item === null
? context.transformOffset(cstItem.valueRange.origStart + 1)
: item.position.end), item);
});
return createSequence(createPosition(sequenceItems[0].position.start, getLast(sequenceItems).position.end), context.transformContent(seq), sequenceItems);
}