generate method
Executes the plugin's code-generation and configuration logic.
Implementation
@override
Future<void> generate(ProjectContext context) async {
final pubspecPath = '${context.projectPath}/pubspec.yaml';
// 1. Add Hive dependencies
Services.yamlService.addDependency(pubspecPath, 'hive', '^2.2.3');
Services.yamlService.addDependency(pubspecPath, 'hive_flutter', '^1.1.0');
// Add generator dependencies
Services.yamlService.addDependency(pubspecPath, 'hive_generator', '^2.0.1', isDev: true);
Services.yamlService.addDependency(pubspecPath, 'build_runner', '^2.4.8', isDev: true);
// 2. Render Hive service template
await Services.templateService.renderTemplate(
templateSubPath: 'storage/hive_service.dart',
targetPath: '${context.projectPath}/lib/core/services/hive_service.dart',
replacements: {},
);
// 3. Register initialization logic in main.dart
final currentImports = context.templateReplacements['STATE_MANAGEMENT_IMPORTS'] ?? '';
context.templateReplacements['STATE_MANAGEMENT_IMPORTS'] =
"${currentImports}import 'core/services/hive_service.dart';\n";
final currentInit = context.templateReplacements['STATE_MANAGEMENT_INIT'] ?? '';
context.templateReplacements['STATE_MANAGEMENT_INIT'] =
"$currentInit\n await HiveService().init();";
}