11import 'dart:io' show stdout, Directory, File;
22
3- import 'package:dart_style/dart_style.dart' show DartFormatter;
43import 'package:flutter_gen_core/generators/assets_generator.dart' ;
54import 'package:flutter_gen_core/generators/colors_generator.dart' ;
65import 'package:flutter_gen_core/generators/fonts_generator.dart' ;
76import 'package:flutter_gen_core/settings/config.dart' ;
87import 'package:flutter_gen_core/utils/file.dart' ;
8+ import 'package:flutter_gen_core/utils/formatter.dart' ;
99import 'package:path/path.dart' show join, normalize;
1010
1111class FlutterGenerator {
@@ -15,29 +15,26 @@ class FlutterGenerator {
1515 this .assetsName = 'assets.gen.dart' ,
1616 this .colorsName = 'colors.gen.dart' ,
1717 this .fontsName = 'fonts.gen.dart' ,
18+ this .overrideOutputPath,
1819 });
1920
2021 final File pubspecFile;
2122 final File ? buildFile;
2223 final String assetsName;
2324 final String colorsName;
2425 final String fontsName;
26+ final String ? overrideOutputPath;
2527
2628 Future <void > build ({Config ? config, FileWriter ? writer}) async {
2729 config ?? = loadPubspecConfigOrNull (pubspecFile, buildFile: buildFile);
2830 if (config == null ) {
2931 return ;
3032 }
3133
34+ final formatter = buildDartFormatterFromConfig (config);
3235 final flutter = config.pubspec.flutter;
3336 final flutterGen = config.pubspec.flutterGen;
3437 final output = config.pubspec.flutterGen.output;
35- final lineLength = config.pubspec.flutterGen.lineLength;
36- final formatter = DartFormatter (
37- languageVersion: DartFormatter .latestLanguageVersion,
38- pageWidth: lineLength,
39- lineEnding: '\n ' ,
40- );
4138
4239 void defaultWriter (String contents, String path) {
4340 final file = File (path);
@@ -49,39 +46,40 @@ class FlutterGenerator {
4946
5047 writer ?? = defaultWriter;
5148
52- final absoluteOutput =
53- Directory (normalize (join (pubspecFile.parent.path, output)));
49+ final absoluteOutput = Directory (
50+ normalize (overrideOutputPath ?? join (pubspecFile.parent.path, output)),
51+ );
5452 if (! absoluteOutput.existsSync ()) {
5553 absoluteOutput.createSync (recursive: true );
5654 }
5755
58- if (flutterGen.colors.enabled && flutterGen.colors.inputs.isNotEmpty) {
59- final generated =
60- generateColors (pubspecFile, formatter, flutterGen.colors);
61- final colorsPath =
62- normalize (join (pubspecFile.parent.path, output, colorsName));
63- writer (generated, colorsPath);
64- stdout.writeln ('[FlutterGen] Generated: $colorsPath ' );
65- }
66-
6756 if (flutterGen.assets.enabled && flutter.assets.isNotEmpty) {
6857 final generated = await generateAssets (
6958 AssetsGenConfig .fromConfig (pubspecFile, config),
7059 formatter,
7160 );
72- final assetsPath =
73- normalize (join (pubspecFile.parent.path, output, assetsName));
61+ final assetsPath = normalize (join (absoluteOutput.path, assetsName));
7462 writer (generated, assetsPath);
7563 stdout.writeln ('[FlutterGen] Generated: $assetsPath ' );
7664 }
7765
66+ if (flutterGen.colors.enabled && flutterGen.colors.inputs.isNotEmpty) {
67+ final generated = generateColors (
68+ pubspecFile,
69+ formatter,
70+ flutterGen.colors,
71+ );
72+ final colorsPath = normalize (join (absoluteOutput.path, colorsName));
73+ writer (generated, colorsPath);
74+ stdout.writeln ('[FlutterGen] Generated: $colorsPath ' );
75+ }
76+
7877 if (flutterGen.fonts.enabled && flutter.fonts.isNotEmpty) {
7978 final generated = generateFonts (
8079 FontsGenConfig .fromConfig (config),
8180 formatter,
8281 );
83- final fontsPath =
84- normalize (join (pubspecFile.parent.path, output, fontsName));
82+ final fontsPath = normalize (join (absoluteOutput.path, fontsName));
8583 writer (generated, fontsPath);
8684 stdout.writeln ('[FlutterGen] Generated: $fontsPath ' );
8785 }
0 commit comments