generateFeature method
Generate a full feature for the project's architecture.
Implementation
void generateFeature(ProjectContext ctx, String featureName) {
final snake = StringUtils.toSnakeCase(featureName);
if (!StringUtils.isValidPackageName(snake)) {
throw StateError(
'Invalid feature name "$featureName". Use lowercase letters, '
'numbers, and underscores (e.g., user_profile).',
);
}
switch (ctx.architecture) {
case 'clean':
_generateCleanFeature(ctx, snake);
break;
case 'mvvm':
_generateMvvmFeature(ctx, snake);
break;
case 'feature-first':
_generateFeatureFirstFeature(ctx, snake);
break;
case 'simple':
_generateSimpleFeature(ctx, snake);
break;
default:
throw StateError(
'Unknown architecture "${ctx.architecture}" in srik.yaml.',
);
}
ctx.appendFeature(snake);
}