build method

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

Implementation

Future<void> build({Config? config, FileWriter? writer}) async {
  config ??= loadPubspecConfigOrNull(pubspecFile);
  if (config == null) {
    return;
  }

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

  void defaultWriter(String contents, String path) {
    final file = File(path);
    if (!file.existsSync()) {
      file.createSync(recursive: true);
    }
    file.writeAsStringSync(contents);
  }

  writer ??= defaultWriter;

  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 colorsPath =
  //       normalize(join(pubspecFile.parent.path, output, colorsName));
  //   writer(generated, colorsPath);
  //   stdout.writeln('[FlutterGen] Generated: $colorsPath');
  // }

  if (flutterGen.assets.enabled && flutter.assets.isNotEmpty) {
    final generated = await generateAssets(
      AssetsGenConfig.fromConfig(pubspecFile, config),
    );
    final assetsPath =
        normalize(join(pubspecFile.parent.path, output, assetsName));
    writer(generated, assetsPath);
    stdout.writeln('[FlutterGen] Generated: $assetsPath');
  }

  // if (flutterGen.fonts.enabled && flutter.fonts.isNotEmpty) {
  //   final generated = generateFonts(
  //     FontsGenConfig.fromConfig(config),
  //     formatter,
  //   );
  //   final fontsPath =
  //       normalize(join(pubspecFile.parent.path, output, fontsName));
  //   writer(generated, fontsPath);
  //   stdout.writeln('[FlutterGen] Generated: $fontsPath');
  // }

  stdout.writeln('[FlutterGen] Finished generating.');
}