generateAppStorageService function
Generates a dart file and installs the required package.
Implementation
Future<void> generateAppStorageService({bool generateSharedPrefs = true}) async {
final isFree = await FirebaseService.instance.isFreeUseOn(feature: 'local_storage');
if (!isFree) {
ConsoleLog.warning(ProjectUtils.freeUseBlockString);
return;
}
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();
}