build method

Future<void> build({
  1. Config? config,
})

Implementation

Future<void> build({Config? config}) async {
  config ??= await getConfig();
  if (config == null) return;

  final flutter = config.pubspec.flutter;
  final flutterGen = config.pubspec.flutterGen;
  final output = config.pubspec.flutterGen.output;
  final lineLength = config.pubspec.flutterGen.lineLength;
  final formatter = DartFormatter(pageWidth: lineLength, lineEnding: '\n');

  final absoluteOutput =
      Directory(normalize(join(pubspecFile.parent.path, output)));
  if (!absoluteOutput.existsSync()) {
    absoluteOutput.createSync(recursive: true);
  }

  if (flutterGen.colors.enabled && flutterGen.colors.inputs.isNotEmpty) {
    final generated =
        generateColors(pubspecFile, formatter, flutterGen.colors);
    final colors =
        File(normalize(join(pubspecFile.parent.path, output, colorsName)));
    writeAsString(generated, file: colors);
    stdout.writeln('Generated: ${colors.absolute.path}');
  }

  if (flutterGen.assets.enabled && flutter.assets.isNotEmpty) {
    final generated = generateAssets(
      AssetsGenConfig.fromConfig(pubspecFile, config),
      formatter,
    );
    final assets =
        File(normalize(join(pubspecFile.parent.path, output, assetsName)));
    writeAsString(generated, file: assets);
    stdout.writeln('Generated: ${assets.absolute.path}');
  }

  if (flutterGen.fonts.enabled && flutter.fonts.isNotEmpty) {
    final generated = generateFonts(formatter, flutter.fonts);
    final fonts =
        File(normalize(join(pubspecFile.parent.path, output, fontsName)));
    writeAsString(generated, file: fonts);
    stdout.writeln('Generated: ${fonts.absolute.path}');
  }

  stdout.writeln('FlutterGen finished.');
}