blob: 1442b74acb7073ede6023a82811f41d1b8bd6f02 [file] [edit]
// Copyright (c) 2026, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
/// Encapsulates asset file naming conventions and schemes.
abstract class AssetScheme {
/// File extension for JS files.
/// (e.g., '.ddc.js' or '.dart.lib.js').
String get jsSuffix;
/// File extension for sourcemaps.
/// (e.g., '.ddc.js.map' or '.dart.lib.js.map').
String get sourceMapSuffix;
/// File extension for module names.
/// (e.g., '.ddc' or '.dart.lib').
String get descriptorSuffix;
/// File extension for full dill files.
/// (e.g., '.ddc.full.dill' or '.dart.lib.full.dill').
String get fullDillSuffix;
/// File extension for summary dill files.
/// (e.g., '.ddc.dill' or '.dart.lib.dill').
String get summaryDillSuffix;
/// File extension for bootstrap files.
/// (e.g., '.bootstrap.js' or '.dart.bootstrap.js').
String get bootstrapSuffix;
/// File extension for merged metadata.
/// (e.g., '.ddc_merged_metadata').
String get mergedMetadataSuffix;
}
/// Asset scheme for package:build assets.
final class BuildRunnerAssetScheme implements AssetScheme {
const BuildRunnerAssetScheme();
@override
String get jsSuffix => '.ddc.js';
@override
String get sourceMapSuffix => '.ddc.js.map';
@override
String get descriptorSuffix => '.ddc';
@override
String get fullDillSuffix => '.ddc.full.dill';
@override
String get summaryDillSuffix => '.ddc.dill';
@override
String get bootstrapSuffix => '.bootstrap.js';
@override
String get mergedMetadataSuffix => '.ddc_merged_metadata';
}
/// Asset scheme for Frontend Server assets.
final class FrontendServerAssetScheme implements AssetScheme {
const FrontendServerAssetScheme();
@override
String get jsSuffix => '.dart.lib.js';
@override
String get sourceMapSuffix => '.dart.lib.js.map';
@override
String get descriptorSuffix => '.dart.lib';
@override
String get fullDillSuffix => '.dart.lib.full.dill';
@override
String get summaryDillSuffix => '.dart.lib.dill';
@override
String get bootstrapSuffix => '.bootstrap.js';
@override
String get mergedMetadataSuffix => '.ddc_merged_metadata';
}