generateScreen method
Generate a single screen for the project's architecture.
Implementation
void generateScreen(
ProjectContext ctx,
String screenName, {
required String feature,
}) {
final snake = StringUtils.toSnakeCase(screenName);
if (!StringUtils.isValidPackageName(snake)) {
throw StateError(
'Invalid screen name "$screenName". Use lowercase letters, '
'numbers, and underscores (e.g., user_profile).',
);
}
switch (ctx.architecture) {
case 'clean':
_generateCleanScreen(ctx, snake, feature: feature);
break;
case 'mvvm':
_generateMvvmScreen(ctx, snake);
break;
case 'feature-first':
_generateFeatureFirstScreen(ctx, snake, feature: feature);
break;
case 'simple':
_generateSimpleScreen(ctx, snake);
break;
default:
throw StateError(
'Unknown architecture "${ctx.architecture}" in srik.yaml.',
);
}
}