generateFeature function
Scaffolds a feature module named feature inside lib/features/[feature]/.
The generator auto-detects architecture mode from the existing project:
- Clean Architecture: creates data/domain/presentation layers.
- Normal Folder Architecture: creates screen/service/provider/model/widgets.
Pass architectureType as clean or normal to force a mode.
Implementation
void generateFeature(String feature, {String? architectureType}) {
final normalized = normalizeFeatureName(feature);
if (normalized == null) {
logError(
"Invalid feature name: '$feature'. "
'Use letters, digits, and underscores (e.g. user_profile).',
);
return;
}
if (normalized != feature) {
logInfo("Using normalized feature name: '$normalized'");
}
final forcedMode = _normalizeArchitectureType(architectureType);
if (forcedMode == _FeatureArchitectureType.clean ||
(forcedMode == null && _isCleanArchitectureProject())) {
_generateCleanFeature(normalized);
return;
}
_generateStandardFeature(normalized);
}