removeAnalyticsScreenNameIfUnsupported method

Future<void> removeAnalyticsScreenNameIfUnsupported({
  1. required String destinationPath,
  2. required String featureName,
})

Boilerplates older than the navigation update have no AnalyticsScreenName; the generated page would not compile there, so the interface, its import and the getter are removed again.

Implementation

Future<void> removeAnalyticsScreenNameIfUnsupported({
  required String destinationPath,
  required String featureName,
}) async {
  if (File(kAnalyticsScreenNamePath).existsSync()) return;
  final File page =
      File('$destinationPath/${featureName.toLowerCase()}_page.dart');
  if (!page.existsSync()) return;
  String content = await page.readAsString();
  content = content
      .replaceAll(kAnalyticsScreenNameImport, '')
      .replaceAll(kAnalyticsScreenNameImplements, '')
      .replaceAll(
        RegExp(
          '${RegExp.escape(kAnalyticsScreenNameGetterStart)}[^\n]*\n',
        ),
        '\n',
      );
  await page.writeAsString(content);
}