createUsecaseFiles method

void createUsecaseFiles(
  1. String featureName,
  2. String basePath
)

Implementation

void createUsecaseFiles(String featureName, String basePath) {
  final snakeCaseName = toSnakeCase(featureName);
  final classNamePrefix =
      featureName[0].toUpperCase() + featureName.substring(1);
  final packageName = getPackageName(basePath);

  final usecaseFile =
      File('$basePath/domain/usecases/get_$snakeCaseName.dart');
  if (!usecaseFile.existsSync()) {
    usecaseFile.writeAsStringSync('''
import 'package:dartz/dartz.dart';
import 'package:$packageName/core/error/failures.dart';
import 'package:$packageName/features/$featureName/domain/entities/$snakeCaseName.dart';
import 'package:$packageName/features/$featureName/domain/repositories/${snakeCaseName}_repository.dart';

class Get$classNamePrefix {
final ${classNamePrefix}Repository repository;

Get$classNamePrefix(this.repository);

Future<Either<Failure, $classNamePrefix>> call() async {
  return await repository.get$classNamePrefix();
}
}
''');
    print('Created usecase file: get_$snakeCaseName.dart');
  }
}