generateAppStorageService function

Future<void> generateAppStorageService({
  1. bool generateSharedPrefs = true,
})

Generates a dart file and installs the required package.

Implementation

Future<void> generateAppStorageService(
    {bool generateSharedPrefs = true}) async {
  final start = DateTime.now();
  ConsoleLog.title(generateSharedPrefs
      ? 'Generating SharedPreferencesService...'
      : 'Generating GetStorageService...');

  DartgenxConfig config = DartgenxConfig.load();

  final file = File(
      config.outputPath?.appStorageService ?? "lib/${generateSharedPrefs ? 'shared_preferences_service' : 'get_storage_service'}.dart");

  file.createSync(recursive: true);

  file.writeAsStringSync(
      generateSharedPrefs ? sharedPreferenceTemplate : getStorageTemplate);
  ConsoleLog.success(
      '${generateSharedPrefs ? 'SharedPreferencesService' : 'GetStorageService'} generated at ${file.path}');

  ConsoleLog.info('Installing required dependencies...');
  ConsoleLog.step(
      'flutter pub add ${generateSharedPrefs ? 'shared_preferences' : 'get_storage'}');

  final result = await Process.run(
    'flutter',
    [
      'pub',
      'add',
      (generateSharedPrefs ? 'shared_preferences' : 'get_storage')
    ],
    runInShell: true,
  );
  stdout.write(result.stdout);
  stderr.write(result.stderr);

  final duration = DateTime.now().difference(start).inMilliseconds;
  ConsoleLog.info('Completed in ${duration}ms');
  ConsoleLog.line();
}