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 {
  final inputId = buildStep.inputId;
  final outputId = AssetId(
    inputId.package,
    inputId.path
        .replaceFirst('assets/', 'lib/generated/')
        .replaceFirst('.json', '.dart'),
  );

  final messages = (json.decode(await buildStep.readAsString(inputId)) as Map)
      .cast<String, String>();

  final outputBuffer = StringBuffer('// Generated, do not edit\n');
  messages.forEach((key, value) {
    outputBuffer.writeln("const String $key = '$value';");
  });

  await buildStep.writeAsString(outputId, outputBuffer.toString());
}