wrapMapping method

Map<String, ASTNode> wrapMapping(
  1. MappingNode node
)

Implementation

Map<String, ASTNode> wrapMapping(MappingNode node) {
  Map<String, ASTNode> result = {};
  Map<String, Location>? seen = noDuplicates ? {} : null;

  for (var me in node.elements) {
    var k = (me.key.kind == TokenKind.Word) ? me.key.text : me.key.value;
    if (!noDuplicates) {
      result[k] = me.value;
    } else {
      if (seen!.containsKey(k)) {
        var msg =
            'Duplicate key $k seen at ${me.key.start} (previously at ${seen[k]}';
        throw ConfigException(msg, me.key.start);
      }
      seen[k] = me.key.start!;
      result[k] = me.value;
    }
  }
  return result;
}