refactorProject method

Future<void> refactorProject()

Implementation

Future<void> refactorProject() async {
  final excludeChanges =
      argResults?['exclude-changes']?.toString().isNotEmpty ?? false
          ? (argResults?['exclude-changes']?.toString() ?? '').split(',')
          : [];
  final excludeFiles =
      argResults?['exclude-files']?.toString().isNotEmpty ?? false
          ? (argResults?['exclude-files']?.toString() ?? '').split(',')
          : [];
  final excludeDirectories =
      argResults?['exclude-directories']?.toString().isNotEmpty ?? false
          ? (argResults?['exclude-directories']?.toString() ?? '').split(',')
          : [];

  final exceptChanges = <String>[
    if (!includeLibrary) ...[
      '${oldName.snakeCase}_library',
      '${oldName.snakeCase}_base',
      '${oldName.snakeCase}_http',
      '${oldName.snakeCase}_inspector',
      '${oldName.snakeCase}_extension',
      '${oldName.pascalCase}Cubit',
      '${oldName.pascalCase}Hydrated',
      '${oldName.pascalCase}StatePage',
      '${oldName.pascalCase}Http',
      '${oldName.pascalCase}Exception',
      '${oldName.pascalCase}Failure',
      '${oldName.pascalCase}HttpOverrides',
      '${oldName.pascalCase}Inspector',
      '${oldName.camelCase}Inspector',
    ],
    ...excludeChanges,
  ];

  final exceptFiles = <String>[
    ...excludeFiles,
  ];
  final exceptDirs = <String>[
    join(current, 'core', 'lib', 'src', 'l10n'),
    join(current, 'core', 'packages', '${oldName.snakeCase}_library'),
    join(current, 'android'),
    join(current, 'ios'),
    join(current, 'macos'),
    join(current, 'web'),
    join(current, 'linux'),
    ...excludeDirectories,
  ];

  RefactorHelper.renameFileAndClassName(
    pathDir: join(current),
    oldName: oldName,
    newName: newName,
    exceptChanges: exceptChanges,
    exceptFiles: exceptFiles,
    exceptDirs: exceptDirs,
  );

  await 'morpheme assets'.run;
}