8
8
// ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
9
9
//.title~
10
10
11
+ import 'package:df_config/df_config.dart' ;
11
12
import 'package:df_gen_core/df_gen_core.dart' ;
12
13
import 'package:df_log/df_log.dart' ;
14
+ import 'package:df_string/df_string.dart' ;
13
15
14
16
import '_extract_class_insights_from_dart_file.dart' ;
15
- import '_generator_converger.dart' ;
16
17
import '_insight_mappers.dart' ;
17
18
18
19
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
@@ -65,8 +66,8 @@ Future<void> generateScreenAccess({
65
66
);
66
67
67
68
// For each file...
68
- for (final filePathResult in sourceFileExplorerResults.filePathResults
69
- .where ((e) => e.category == _Categories .DART )) {
69
+ for (final filePathResult
70
+ in sourceFileExplorerResults.filePathResults .where ((e) => e.category == _Categories .DART )) {
70
71
final filePath = filePathResult.path;
71
72
72
73
// Extract insights from the file.
@@ -75,17 +76,72 @@ Future<void> generateScreenAccess({
75
76
filePath,
76
77
);
77
78
78
- printRed (classInsights.length);
79
-
80
79
if (classInsights.isNotEmpty) {
81
- // Converge what was gathered to generate the output.
82
- await generatorConverger.converge (
83
- classInsights,
84
- [template],
85
- [
86
- ...insightMappers,
87
- ],
80
+ final output = template.replaceData (
81
+ {
82
+ Placeholders .SCREEN_MAKERS .placeholder: classInsights.map (
83
+ (e) {
84
+ final a = e.className.toPascalCase ();
85
+ return 'maker$a ,' ;
86
+ },
87
+ ),
88
+ Placeholders .PATHS .placeholder: classInsights.map (
89
+ (e) {
90
+ final a = e.className.toUpperSnakeCase ();
91
+ return '...PATH_$a ' ;
92
+ },
93
+ ),
94
+ Placeholders .PATHS_NOT_REDIRECTABLE .placeholder: classInsights.map (
95
+ (e) {
96
+ final a = e.className.toUpperSnakeCase ();
97
+ return '...PATH_NOT_REDIRECTABLE_$a ' ;
98
+ },
99
+ ),
100
+ Placeholders .PATHS_ALWAYS_ACCESSIBLE .placeholder: classInsights.map (
101
+ (e) {
102
+ final a = e.className.toUpperSnakeCase ();
103
+ return '...PATH_ALWAYS_ACCESSIBLE_$a ' ;
104
+ },
105
+ ),
106
+ Placeholders .PATHS_ACCESSIBLE_ONLY_IF_LOGGED_IN_AND_VERIFIED .placeholder:
107
+ classInsights.map (
108
+ (e) {
109
+ final a = e.className.toUpperSnakeCase ();
110
+ return '...PATH_ACCESSIBLE_ONLY_IF_LOGGED_IN_AND_VERIFIED_$a ' ;
111
+ },
112
+ ),
113
+ Placeholders .PATHS_ACCESSIBLE_ONLY_IF_LOGGED_IN .placeholder: classInsights.map (
114
+ (e) {
115
+ final a = e.className.toUpperSnakeCase ();
116
+ return '...PATH_ACCESSIBLE_ONLY_IF_LOGGED_IN_$a ' ;
117
+ },
118
+ ),
119
+ Placeholders .PATHS_ACCESSIBLE_ONLY_IF_LOGGED_OUT .placeholder: classInsights.map (
120
+ (e) {
121
+ final a = e.className.toUpperSnakeCase ();
122
+ return '...PATH_ACCESSIBLE_ONLY_IF_LOGGED_OUT_$a ' ;
123
+ },
124
+ ),
125
+ Placeholders .GENERATED_SCREEN_ROUTES .placeholder: classInsights.map (
126
+ (e) {
127
+ final a = e.className.toPascalCase ();
128
+ return 'generated${a }Route' ;
129
+ },
130
+ ),
131
+ },
88
132
);
133
+
134
+ // Write the generated Dart file.
135
+ await writeFile (outputFilePath, output);
136
+
137
+ // Fix the generated Dart file.
138
+ await fixDartFile (outputFilePath);
139
+
140
+ // Format the generated Dart file.
141
+ await fmtDartFile (outputFilePath);
142
+
143
+ // Log a success.
144
+ debugLogSuccess ('Generated "${previewPath (outputFilePath )}"' );
89
145
}
90
146
}
91
147
0 commit comments