feature static method

Future<void> feature()

Implementation

static Future<void> feature() async {
  final featureName = InputService.getValidatedInput(
      consoleMessage: Constants.kEnterFeatureName,
      errorMessage: Constants.kInvalidValue,
      functionValidator: Validator.isValidSingleString
  ).snakeCase();

  final projectPath = DirectoryService.getValidProjectPath('lib/features');

  final directories = [
    'lib/features/$featureName',
    'lib/features/$featureName/logic',
    'lib/features/$featureName/logic/utils',
    'lib/features/$featureName/view',
    'lib/features/$featureName/view/widgets',
    'lib/features/$featureName/models'
  ];

  await DirectoryService.buildStructure(projectPath: projectPath, directories: directories);

  FileService.createFile(
      filePath: '$projectPath/lib/features/$featureName/$featureName.dart',
      content: '''export 'view/view.dart';'''
  );
  FileService.createFile(filePath: '$projectPath/lib/features/$featureName/logic/utils/utils.dart');
  FileService.createFile(filePath: '$projectPath/lib/features/$featureName/view/view.dart');
  FileService.createFile(filePath: '$projectPath/lib/features/$featureName/view/widgets/widgets.dart');
  FileService.createFile(filePath: '$projectPath/lib/features/$featureName/models/models.dart');

  Console.writeLine(dcli.green('✅  The folder structure for feature has been successfully created!'));
}