Skip to content
This repository has been archived by the owner on Feb 10, 2025. It is now read-only.

Add support for merge keys #129

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Add support for merge keys
farcaller committed Jul 7, 2022

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
commit 8c270e750075968a425a55ff28a41f374d1485db
12 changes: 12 additions & 0 deletions lib/src/loader.dart
Original file line number Diff line number Diff line change
@@ -174,6 +174,18 @@ class Loader {
children[key] = value;
event = _parser.parse();
}
if (children.containsKey('<<')) {
final mergeVal = children['<<']!;
if (mergeVal is! YamlMap) {
throw YamlException('Merge key is not a map', mergeVal.span);
}
for (final e in mergeVal.nodes.entries) {
if (!children.containsKey(e.key)) {
children[e.key] = e.value;
}
}
children.remove('<<');
}

setSpan(node, firstEvent.span.expand(event.span));
return node;