diff --git a/discoveryapis_generator/lib/discoveryapis_generator.dart b/discoveryapis_generator/lib/discoveryapis_generator.dart index 23b2a572f..e30591413 100644 --- a/discoveryapis_generator/lib/discoveryapis_generator.dart +++ b/discoveryapis_generator/lib/discoveryapis_generator.dart @@ -5,6 +5,8 @@ import 'dart:convert'; import 'dart:io'; +import 'package:path/path.dart' as path; + import 'src/apis_files_generator.dart'; import 'src/apis_package_generator.dart'; import 'src/generated_googleapis/discovery/v1.dart'; @@ -40,11 +42,20 @@ List generateAllLibraries( Pubspec pubspec, { bool deleteExisting = true, required Set skipTests, + Set? knownApis, }) { final apiDescriptions = Directory(inputDirectory) .listSync() .whereType() - .where((fse) => fse.path.endsWith('.json')) + .where((fse) { + final isApiFile = fse.path.endsWith('.json'); + final filename = path.basenameWithoutExtension(fse.path); + if (knownApis != null) { + final apiName = filename.replaceAll('__', ':'); + return knownApis.contains(apiName) && isApiFile; + } + return isApiFile; + }) .map((entity) => RestDescription.fromJson( json.decode(entity.readAsStringSync()) as Map, )) diff --git a/generator/lib/src/package_configuration.dart b/generator/lib/src/package_configuration.dart index 756afa2c2..70ba30e64 100644 --- a/generator/lib/src/package_configuration.dart +++ b/generator/lib/src/package_configuration.dart @@ -46,6 +46,7 @@ class DiscoveryPackagesConfiguration { late final Set excessApis; late final List missingApis; late final Set skipTests; + late final Set knownApis; final existingApiRevisions = {}; Map? newRevisions; Map? oldRevisions; @@ -178,6 +179,7 @@ class DiscoveryPackagesConfiguration { package.pubspec, deleteExisting: deleteExisting, skipTests: skipTests, + knownApis: knownApis, ); for (final result in results) { if (!result.success) { @@ -209,7 +211,7 @@ class DiscoveryPackagesConfiguration { packages = _packagesFromYaml(yaml['packages'] as YamlList, configFile, allApis); skipTests = _listFromYaml(yaml['skip_tests'] as YamlList?).toSet(); - final knownApis = _calculateKnownApis( + knownApis = _calculateKnownApis( packages, _listFromYaml(yaml['skipped_apis'] as YamlList?), );