generate method
Implementation
Future<void> generate() async {
if (!config.generateSupabaseSelectBuilders) {
_logger.info('Supabase select builder generation is disabled. Skipping.');
return;
}
if (_allTables.isEmpty) {
_logger.warning(
'No table information provided. Skipping select builder generation.',
);
return;
}
_logger.info('Starting Supabase select builder class generation...');
// Generate and write the schema Dart file
final schemaDartFileContent = _generateSchemaDartFileContent();
final schemaDartFilePath = '${config.generatedSupabaseSchemaDartFilePath}';
_logger.info('Writing Supabase schema Dart file to $schemaDartFilePath');
try {
await _writeFile(schemaDartFilePath, schemaDartFileContent);
_logger.info(
'Successfully generated Supabase schema Dart file: $schemaDartFilePath',
);
} catch (e, s) {
_logger.severe(
'Failed to write Supabase schema Dart file to $schemaDartFilePath: $e, $s',
);
// Optionally rethrow or handle if this is critical
}
// Generate and write the select builders file
final builderFileContent = _generateBuilderFileContent();
final builderFilePath = config.supabaseSelectBuildersFilePath;
try {
await _writeFile(builderFilePath, builderFileContent);
_logger.info(
'Successfully generated Supabase select builders file: $builderFilePath',
);
} catch (e, s) {
_logger.severe(
'Failed to write Supabase select builders file to $builderFilePath: $e, $s',
);
}
}