Skip to content

Commit da7bdc6

Browse files
authored
Non-nullable ApiExporter instance in scope. (#8790)
1 parent c898680 commit da7bdc6

File tree

11 files changed

+24
-32
lines changed

11 files changed

+24
-32
lines changed

app/lib/admin/actions/exported_api_sync.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Optionally, write rewrite of all files using:
3939
final packagesOpt = options['packages'] ?? '';
4040
final syncAll = packagesOpt == 'ALL';
4141
if (syncAll) {
42-
await apiExporter!.synchronizeExportedApi(forceWrite: forceWrite);
42+
await apiExporter.synchronizeExportedApi(forceWrite: forceWrite);
4343
return {
4444
'packages': 'ALL',
4545
'forceWrite': forceWrite,
@@ -50,7 +50,7 @@ Optionally, write rewrite of all files using:
5050
InvalidInputException.checkPackageName(p);
5151
}
5252
for (final p in packages) {
53-
await apiExporter!.synchronizePackage(p, forceWrite: forceWrite);
53+
await apiExporter.synchronizePackage(p, forceWrite: forceWrite);
5454
}
5555
return {
5656
'packages': packages,

app/lib/admin/actions/moderate_package.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ Note: the action may take a longer time to complete as the public archive bucket
8383
await purgePackageCache(package);
8484

8585
// sync exported API(s)
86-
await apiExporter?.synchronizePackage(package, forceDelete: true);
86+
await apiExporter.synchronizePackage(package, forceDelete: true);
8787

8888
// retract or re-populate public archive files
8989
await packageBackend.tarballStorage.updatePublicArchiveBucket(

app/lib/admin/actions/moderate_package_versions.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ Set the moderated flag on a package version (updating the flag and the timestamp
116116
await purgePackageCache(package);
117117

118118
// sync exported API(s)
119-
await apiExporter?.synchronizePackage(package, forceDelete: true);
119+
await apiExporter.synchronizePackage(package, forceDelete: true);
120120

121121
// retract or re-populate public archive files
122122
await packageBackend.tarballStorage.updatePublicArchiveBucket(

app/lib/fake/server/fake_server_entrypoint.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ Future<shelf.Response> _testProfile(shelf.Request rq) async {
174174
// ignore: invalid_use_of_visible_for_testing_member
175175
await importProfile(profile: profile);
176176
final analysis = (map['analysis'] as String?) ?? 'fake';
177-
await apiExporter!.synchronizeExportedApi();
177+
await apiExporter.synchronizeExportedApi();
178178
await processTaskFakeLocalOrWorker(analysis);
179179
return shelf.Response.ok('{}');
180180
}

app/lib/package/api_export/api_exporter.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ final Logger _log = Logger('api_export.api_exporter');
2929
void registerApiExporter(ApiExporter value) =>
3030
ss.register(#_apiExporter, value);
3131

32-
/// The active API Exporter service or null if it hasn't been initialized.
33-
ApiExporter? get apiExporter => ss.lookup(#_apiExporter) as ApiExporter?;
32+
/// The API Exporter service.
33+
ApiExporter get apiExporter => ss.lookup(#_apiExporter) as ApiExporter;
3434

3535
const _concurrency = 50;
3636

app/lib/package/backend.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1320,10 +1320,8 @@ class PackageBackend {
13201320
if (activeConfiguration.isPublishedEmailNotificationEnabled)
13211321
emailBackend.trySendOutgoingEmail(outgoingEmail),
13221322
taskBackend.trackPackage(newVersion.package, updateDependents: true),
1323-
if (apiExporter != null) ...[
1324-
apiExporter!.synchronizePackage(newVersion.package),
1325-
apiExporter!.synchronizeAllPackagesAtomFeed(),
1326-
],
1323+
apiExporter.synchronizePackage(newVersion.package),
1324+
apiExporter.synchronizeAllPackagesAtomFeed(),
13271325
]);
13281326
await tarballStorage.updateContentDispositionOnPublicBucket(
13291327
newVersion.package, newVersion.version!);

app/lib/service/entrypoint/analyzer.dart

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import 'package:gcloud/service_scope.dart';
99
import 'package:logging/logging.dart';
1010
import 'package:pub_dev/package/api_export/api_exporter.dart';
1111
import 'package:pub_dev/search/backend.dart';
12-
import 'package:pub_dev/shared/configuration.dart';
1312

1413
import '../../analyzer/handlers.dart';
1514
import '../../service/services.dart';
@@ -41,10 +40,8 @@ class AnalyzerCommand extends Command {
4140
// TODO: rewrite this loop to have a start/stop logic
4241
scheduleMicrotask(searchBackend.updateSnapshotInForeverLoop);
4342

44-
if (activeConfiguration.exportedApiBucketName != null) {
45-
await apiExporter!.start();
46-
registerScopeExitCallback(() => apiExporter!.stop());
47-
}
43+
await apiExporter.start();
44+
registerScopeExitCallback(() => apiExporter.stop());
4845

4946
await runHandler(logger, analyzerServiceHandler);
5047
});

app/lib/service/services.dart

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -243,14 +243,11 @@ Future<R> _withPubServices<R>(FutureOr<R> Function() fn) async {
243243
registerAccountBackend(AccountBackend(dbService));
244244
registerAdminBackend(AdminBackend(dbService));
245245
registerAnnouncementBackend(AnnouncementBackend());
246-
if (activeConfiguration.exportedApiBucketName != null) {
247-
registerApiExporter(ApiExporter(
248-
dbService,
249-
storageService: storageService,
250-
bucket:
251-
storageService.bucket(activeConfiguration.exportedApiBucketName!),
252-
));
253-
}
246+
registerApiExporter(ApiExporter(
247+
dbService,
248+
storageService: storageService,
249+
bucket: storageService.bucket(activeConfiguration.exportedApiBucketName!),
250+
));
254251
registerAsyncQueue(AsyncQueue());
255252
registerAuditBackend(AuditBackend(dbService));
256253
registerConsentBackend(ConsentBackend(dbService));

app/lib/shared/configuration.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ final class Configuration {
416416
publicPackagesBucketName!,
417417
searchSnapshotBucketName!,
418418
taskResultBucketName!,
419-
if (exportedApiBucketName != null) exportedApiBucketName!,
419+
exportedApiBucketName!,
420420
]);
421421

422422
late final isProduction = projectId == 'dartlang-pub';

app/lib/tool/neat_task/pub_dev_tasks.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ List<NeatPeriodicTaskScheduler> createPeriodicTaskSchedulers({
133133
_daily(
134134
name: 'synchronize-exported-api',
135135
isRuntimeVersioned: true,
136-
task: () async => await apiExporter?.synchronizeExportedApi(),
136+
task: () async => await apiExporter.synchronizeExportedApi(),
137137
),
138138

139139
// Deletes moderated packages, versions, publishers and users.

app/test/package/api_export/api_exporter_test.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@ void main() {
5252
// we cannot use an isolated instance, we need to use the same setup.
5353
// However, for better control and consistency, we can remove all the
5454
// existing files from the bucket at the start of this test:
55-
await apiExporter!.stop();
55+
await apiExporter.stop();
5656
final bucket =
5757
storageService.bucket(activeConfiguration.exportedApiBucketName!);
5858
await _deleteAll(bucket);
5959

6060
await _testExportedApiSynchronization(
6161
bucket,
62-
apiExporter!.synchronizeExportedApi,
62+
apiExporter.synchronizeExportedApi,
6363
);
6464
});
6565

@@ -75,21 +75,21 @@ void main() {
7575
// we cannot use an isolated instance, we need to use the same setup.
7676
// However, for better control and consistency, we can remove all the
7777
// existing files from the bucket at the start of this test:
78-
await apiExporter!.stop();
78+
await apiExporter.stop();
7979
final bucket =
8080
storageService.bucket(activeConfiguration.exportedApiBucketName!);
8181
await _deleteAll(bucket);
8282

83-
await apiExporter!.synchronizeExportedApi();
83+
await apiExporter.synchronizeExportedApi();
8484

85-
await apiExporter!.start();
85+
await apiExporter.start();
8686

8787
await _testExportedApiSynchronization(
8888
bucket,
8989
() async => await clockControl.elapse(minutes: 15),
9090
);
9191

92-
await apiExporter!.stop();
92+
await apiExporter.stop();
9393
},
9494
);
9595
}

0 commit comments

Comments
 (0)