install method

  1. @override
Future<void> install(
  1. ProjectContext context
)
override

Implementation

@override
Future<void> install(ProjectContext context) async {
  final isGoRouter = context.router == 'go_router';
  final isAutoRoute = context.router == 'auto_route';

  if (isGoRouter) {
    context.corePackages.add('go_router');
  } else if (isAutoRoute) {
    context.corePackages.add('auto_route');
    context.devPackages.addAll(['auto_route_generator', 'build_runner']);
  }

  final templatesPath = TemplatesLocator.getTemplatesPath();
  final brickPath = p.join(
    templatesPath,
    'modules',
    'routing',
  );
  final brick = Brick.path(brickPath);
  final generator = await MasonGenerator.fromBrick(brick);

  final variables = <String, dynamic>{
    'name': context.projectName,
    'isGoRouter': isGoRouter,
    'isAutoRoute': isAutoRoute,
  };

  final target = DirectoryGeneratorTarget(Directory(context.libPath));
  await generator.generate(target, vars: variables, logger: Logger());
}