Definition.from constructor
Definition.from(
- dynamic input
Creates a Definition instance from a dynamic input.
The input can be a Map, List or String.
Implementation
factory Definition.from(dynamic input) {
if (input is Map) {
final description = input[descriptionDefinitionKey] as String?;
final scripts = input[scriptsDefinitionKey] as dynamic;
final execution = input[executionDefinitionKey] as String? ?? 'multiple';
// Reject typos like `onc` or `once ` instead of silently falling back to
// `multiple`, which would run every command after a failure.
if (execution != 'once' && execution != 'multiple') {
throw FormatException(
'Invalid `(execution)` value "$execution"; expected "once" or "multiple".',
);
}
final workdir = input[workdirDefinitionKey] as String?;
return Definition(
description: description,
scripts: _toStringList(scripts),
execution: execution,
workdir: workdir,
);
} else {
return Definition(scripts: _toStringList(input));
}
}