generateStringResKey method

Future<void> generateStringResKey(
  1. BuildStep buildStep
)

Implementation

Future<void> generateStringResKey(BuildStep buildStep) async {
  final messages =
      (json.decode(await buildStep.readAsString(buildStep.inputId)) as Map)
          .cast<String, String>();

  final outputBuffer = StringBuffer(
      "// Generated by the string resources builder. DO NOT EDIT!\n\n");
  outputBuffer.writeln("class StringResKey {");
  messages.forEach((key, value) {
    outputBuffer.writeln('  static const String $key = "$key";');
  });
  outputBuffer.writeln("}");

  final genFile = File(genCodeDir +
      stringResKeyFileName +
      buildExtensions[buildStep.inputId.extension]!.first);
  final isExist = await genFile.exists();
  if (!isExist) {
    await genFile.create(recursive: true);
  }
  await genFile.writeAsString(outputBuffer.toString());
}