featureRoutes function

List<FeatureRoute> featureRoutes(
  1. List<String> featureDirs,
  2. String pkg
)

Maps discovered feature directories (e.g. lib/presentation/product) to FeatureRoutes using the project's package name for view imports.

Implementation

List<FeatureRoute> featureRoutes(List<String> featureDirs, String pkg) {
  final routes = <FeatureRoute>[];
  for (final dir in featureDirs) {
    final base = dir.split('/').last;
    final snake = Naming.snake(base);
    final underLib = dir.replaceFirst(RegExp(r'^lib/'), '');
    routes.add(FeatureRoute(
      routeName: Naming.camel(base),
      className: '${Naming.pascal(base)}View',
      importPath: 'package:$pkg/$underLib/views/${snake}_view.dart',
    ));
  }
  return routes;
}