BuilderDefinition constructor
BuilderDefinition({
- required List<
String> builderFactories, - required Map<
String, List< buildExtensions,String> > - required String import,
- String? target,
- AutoApply? autoApply,
- Iterable<
String> ? requiredInputs, - Iterable<
String> ? runsBefore, - Iterable<
String> ? appliesBuilders, - bool? isOptional,
- BuildTo? buildTo,
- TargetBuilderConfigDefaults? defaults,
Implementation
BuilderDefinition({
required this.builderFactories,
required this.buildExtensions,
required this.import,
String? target,
AutoApply? autoApply,
Iterable<String>? requiredInputs,
Iterable<String>? runsBefore,
Iterable<String>? appliesBuilders,
bool? isOptional,
BuildTo? buildTo,
TargetBuilderConfigDefaults? defaults,
}) :
// ignore: deprecated_member_use
target = target != null
? normalizeTargetKeyUsage(target, currentPackage)
: null,
autoApply = autoApply ?? AutoApply.none,
requiredInputs = requiredInputs?.toList() ?? const [],
runsBefore = runsBefore
?.map((builder) =>
normalizeBuilderKeyUsage(builder, currentPackage))
.toList() ??
const [],
appliesBuilders = appliesBuilders
?.map((builder) =>
normalizeBuilderKeyUsage(builder, currentPackage))
.toList() ??
const [],
isOptional = isOptional ?? false,
buildTo = buildTo ?? BuildTo.cache,
defaults = defaults ?? const TargetBuilderConfigDefaults() {
if (builderFactories.isEmpty) {
throw ArgumentError.value(builderFactories, 'builderFactories',
'Must have at least one value.');
}
if (buildExtensions.entries.any((e) => e.value.contains(e.key))) {
throw ArgumentError.value(
buildExtensions,
'buildExtensions',
'May not overwrite an input, '
'the output extensions must not contain the input extension');
}
}