| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'dart:async'; |
| |
| // ignore: import_of_legacy_library_into_null_safe |
| import 'package:dwds/dwds.dart'; |
| |
| import '../artifacts.dart'; |
| import '../base/file_system.dart'; |
| |
| /// Provides paths to SDK files for dart SDK used in flutter. |
| class SdkWebConfigurationProvider extends SdkConfigurationProvider { |
| |
| SdkWebConfigurationProvider(this._artifacts); |
| |
| final Artifacts _artifacts; |
| SdkConfiguration? _configuration; |
| |
| /// Create and validate configuration matching the default SDK layout. |
| /// Create configuration matching the default SDK layout. |
| @override |
| Future<SdkConfiguration> get configuration async { |
| if (_configuration == null) { |
| final String sdkDir = _artifacts.getHostArtifact(HostArtifact.flutterWebSdk).path; |
| final String unsoundSdkSummaryPath = _artifacts.getHostArtifact(HostArtifact.webPlatformKernelDill).path; |
| final String soundSdkSummaryPath = _artifacts.getHostArtifact(HostArtifact.webPlatformSoundKernelDill).path; |
| final String librariesPath = _artifacts.getHostArtifact(HostArtifact.flutterWebLibrariesJson).path; |
| |
| _configuration = SdkConfiguration( |
| sdkDirectory: sdkDir, |
| unsoundSdkSummaryPath: unsoundSdkSummaryPath, |
| soundSdkSummaryPath: soundSdkSummaryPath, |
| librariesPath: librariesPath, |
| ); |
| } |
| return _configuration!; |
| } |
| |
| /// Validate that SDK configuration exists on disk. |
| static void validate(SdkConfiguration configuration, { required FileSystem fileSystem }) { |
| configuration.validateSdkDir(fileSystem: fileSystem); |
| configuration.validateSummaries(fileSystem: fileSystem); |
| configuration.validateLibrariesSpec(fileSystem: fileSystem); |
| } |
| } |