generatePaginationService function

Future<void> generatePaginationService()

Generates a dart file and installs the required package.

Implementation

Future<void> generatePaginationService() async {
  final start = DateTime.now();

  ConsoleLog.title('Generating Pagination Service...');

  DartgenxConfig config = DartgenxConfig.load();

  final fileController = File(p.join(config.outputPath?.paginationService ?? 'lib', 'pagination_controller.dart'));

  fileController.createSync(recursive: true);

  fileController.writeAsStringSync(paginationControllerTemplate);

  ConsoleLog.success(
      'PaginationController generated at ${fileController.path}');

  final fileWidget = File(p.join(config.outputPath?.paginationService ?? 'lib', 'paging_list_view.dart'));

  fileWidget.createSync(recursive: true);

  fileWidget.writeAsStringSync(
      paginationListViewTemplate(p.join(config.outputPath?.paginationService?.replaceAll('lib', '') ?? '' , 'pagination_controller.dart')));

  ConsoleLog.success('PagingListView generated at ${fileWidget.path}');

  final customScrollViewWidget = File(p.join(config.outputPath?.paginationService ?? 'lib', 'paging_custom_scroll_view.dart'));

  customScrollViewWidget.createSync(recursive: true);

  customScrollViewWidget.writeAsStringSync(
      paginationCustomScrollViewTemplate(p.join(config.outputPath?.paginationService?.replaceAll('lib', '') ?? '' , 'pagination_controller.dart')));

  ConsoleLog.success('PagingCustomScrollView generated at ${customScrollViewWidget.path}');

  ConsoleLog.info('Installing required dependencies...');

  final packages = ['dio'];

  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();
}