build method

  1. @override
Future<void> build(
  1. BuildStep buildStep
)

Generates the outputs for a given BuildStep.

Implementation

@override
Future<void> build(BuildStep buildStep) async {
  // Only run for the synthetic input
  if (!buildStep.inputId.path.endsWith(r'$lib$')) {
    return;
  }

  // Ensure gen directory exists
  final genDir = Directory('lib/gen');
  if (!await genDir.exists()) {
    await genDir.create(recursive: true);
  }

  // Generate code with validation
  final generator = EnviroGeneratorLogic();
  final output = await generator.generate();

  if (output != null) {
    final outputId = AssetId(
      buildStep.inputId.package,
      'lib/gen/enviro.gen.dart',
    );
    await buildStep.writeAsString(outputId, output);
  }
}