generateApiClientService function
Generates a dart file and installs the required package.
Implementation
Future<void> generateApiClientService() async {
final start = DateTime.now();
ConsoleLog.title('Generating ApiClient ...');
DartgenxConfig config = DartgenxConfig.load();
final fileClient = File(config.outputPath?.apiClient ?? 'lib/api_client.dart');
fileClient.createSync(recursive: true);
fileClient.writeAsStringSync(apiClientTemplate(
loggerInterceptorPath: config.outputPath?.loggerInterceptor?.replaceAll('lib', '') ??
'/logger_interceptor.dart'));
ConsoleLog.success('ApiClient generated at ${fileClient.path}');
final fileLogger = File(config.outputPath?.loggerInterceptor ?? 'lib/logger_interceptor.dart');
fileLogger.createSync(recursive: true);
fileLogger.writeAsStringSync(loggerInterceptorTemplate);
ConsoleLog.success('LoggerInterceptor generated at ${fileLogger.path}');
ConsoleLog.info('Installing required dependencies...');
final packages = ['dio', "path_provider"];
ConsoleLog.step('flutter pub add ${packages.join(" ")}');
final result = await Process.run(
'flutter',
['pub', 'add', ...packages],
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();
}