Skip to content

Commit fa31fb4

Browse files
authored
fixed for config_delta script (#720)
1 parent b2db98c commit fa31fb4

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

generator/tool/config_delta.dart

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -114,18 +114,26 @@ Map<String, Set<String>> _parseApis(String yamlContent) {
114114

115115
final apis = <String, Set<String>>{};
116116

117-
// We need to look for 'packages' key which is a list
118-
final packages = doc['packages'] as List;
119-
120-
// Find the 'googleapis' entry
121-
final googleapisConfig = packages
122-
.whereType<Map>()
123-
.where((element) => element.containsKey('googleapis'))
124-
.firstOrNull;
125-
126-
if (googleapisConfig == null) return apis;
117+
// We need to look for 'packages' key which is a list or a map
118+
final packages = doc['packages'];
119+
Map? googleapisMap;
120+
121+
// New format: packages is a map with 'googleapis' key
122+
if (packages is Map && packages.containsKey('googleapis')) {
123+
googleapisMap = packages['googleapis'] as Map;
124+
} else if (packages is List) {
125+
// Old format: packages is a list of maps
126+
final googleapisConfig = packages
127+
.whereType<Map>()
128+
.where((element) => element.containsKey('googleapis'))
129+
.firstOrNull;
130+
131+
if (googleapisConfig != null) {
132+
googleapisMap = googleapisConfig['googleapis'] as Map;
133+
}
134+
}
127135

128-
final googleapisMap = googleapisConfig['googleapis'] as Map;
136+
if (googleapisMap == null) return apis;
129137
if (!googleapisMap.containsKey('apis')) return apis;
130138

131139
final apiList = googleapisMap['apis'] as List;

0 commit comments

Comments
 (0)