Skip to content

Commit 6fd2e24

Browse files
committed
Update
1 parent c88e126 commit 6fd2e24

File tree

4 files changed

+174
-218
lines changed

4 files changed

+174
-218
lines changed

analysis_options.yaml

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
## ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
88
##.title~
99

10-
include: package:flutter_lints/flutter.yaml
10+
include: package:lints/recommended.yaml
1111

1212
## ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
1313

1414
linter:
1515
rules:
16-
avoid_web_libraries_in_flutter: true
16+
always_declare_return_types: true
17+
avoid_renaming_method_parameters: false
1718
constant_identifier_names: false
18-
file_names: false
1919
non_constant_identifier_names: false
2020
omit_local_variable_types: true
2121
prefer_const_constructors_in_immutables: true
@@ -26,21 +26,12 @@ linter:
2626
require_trailing_commas: true
2727
unnecessary_this: false
2828
camel_case_types: false
29-
library_private_types_in_public_api: false
3029

3130
analyzer:
3231
exclude:
3332
- build/**
34-
33+
#- '**/*.g.dart'
3534
errors:
36-
always_declare_return_types: error
37-
avoid_renaming_method_parameters: error
38-
avoid_type_to_string: error
39-
depend_on_referenced_packages: error
40-
flutter_style_todos: error
41-
no_leading_underscores_for_local_identifiers: error
4235
prefer_final_in_for_each: error
43-
prefer_relative_imports: error
4436
unnecessary_new: error
4537
unrelated_type_equality_checks: error
46-
use_key_in_widget_constructors: error
Lines changed: 150 additions & 152 deletions
Original file line numberDiff line numberDiff line change
@@ -1,162 +1,160 @@
1-
// //.title
2-
// // ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
3-
// //
4-
// // Dart/Flutter (DF) Packages by DevCetra.com & contributors. See LICENSE file
5-
// // in root directory.
6-
// //
7-
// // ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
8-
// //.title~
1+
//.title
2+
// ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
3+
//
4+
// Dart/Flutter (DF) Packages by DevCetra.com & contributors. See LICENSE file
5+
// in root directory.
6+
//
7+
// ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
8+
//.title~
99

10-
// import 'package:analyzer/dart/analysis/analysis_context_collection.dart';
11-
// import 'package:df_generate_dart_models_core/df_generate_dart_models_core.dart';
10+
import 'package:analyzer/dart/analysis/analysis_context_collection.dart';
11+
import 'package:df_generate_dart_models_core/df_generate_dart_models_core.dart';
1212

13-
// import 'package:path/path.dart' as p;
14-
// import 'package:df_gen_core/df_gen_core.dart';
15-
// import 'package:df_screen_core/df_screen_core.dart';
13+
import 'package:path/path.dart' as p;
14+
import 'package:df_gen_core/df_gen_core.dart';
15+
import 'package:df_screen_core/df_screen_core.dart';
1616

17-
// import '/src/_index.g.dart';
17+
import '/src/_index.g.dart';
1818

19-
// // ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
19+
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
2020

21-
// Future<List<_ClassInsight>> extractClassInsightsFromDartFile(
22-
// AnalysisContextCollection analysisContextCollection,
23-
// String filePath,
24-
// ) async {
25-
// //late ModelGenerateScreenBindings temp;
26-
// // final analyzer = DartAnnotatedClassAnalyzer(
27-
// // filePath: filePath,
28-
// // analysisContextCollection: analysisContextCollection,
29-
// // );
21+
Future<List<_ClassInsight>> extractClassInsightsFromDartFile(
22+
AnalysisContextCollection analysisContextCollection,
23+
String filePath,
24+
) async {
25+
late ModelGenerateScreenBindings temp;
26+
final analyzer = DartAnnotatedClassAnalyzer(
27+
filePath: filePath,
28+
analysisContextCollection: analysisContextCollection,
29+
);
3030

31-
// // //final insights = <_ClassInsight>[];
32-
// // await analyzer.analyze(
33-
// // inclClassAnnotations: {ModelGenerateScreenBindingsFieldNames.className},
34-
// // // onClassAnnotationField: (params) async =>
35-
// // // temp = _updateFromClassAnnotationField(temp, params),
36-
// // //onPreAnalysis: (_, __) => temp = const ModelGenerateScreenBindings(),
37-
// // onPostAnalysis: (params) {
38-
// // // final fullPathName = params.fullFilePath;
39-
// // // final fileName = p.basename(fullPathName);
40-
// // // final dirPath = p.dirname(fullPathName);
41-
// // // final insight = _ClassInsight(
42-
// // // className: params.className,
43-
// // // annotation: temp,
44-
// // // dirPath: dirPath,
45-
// // // fileName: fileName,
46-
// // // );
47-
// // // insights.add(insight);
48-
// // },
49-
// // );
50-
// return [];
51-
// }
31+
final insights = <_ClassInsight>[];
32+
await analyzer.analyze(
33+
inclClassAnnotations: {ModelGenerateScreenBindingsFieldNames.className},
34+
onClassAnnotationField: (params) async => temp = _updateFromClassAnnotationField(temp, params),
35+
onPreAnalysis: (_, __) => temp = const ModelGenerateScreenBindings(),
36+
onPostAnalysis: (params) {
37+
final fullPathName = params.fullFilePath;
38+
final fileName = p.basename(fullPathName);
39+
final dirPath = p.dirname(fullPathName);
40+
final insight = _ClassInsight(
41+
className: params.className,
42+
annotation: temp,
43+
dirPath: dirPath,
44+
fileName: fileName,
45+
);
46+
insights.add(insight);
47+
},
48+
);
49+
return insights;
50+
}
5251

53-
// // ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
52+
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
5453

55-
// // ModelGenerateScreenBindings _updateFromClassAnnotationField(
56-
// // ModelGenerateScreenBindings annotation,
57-
// // OnClassAnnotationFieldParams params,
58-
// // ) {
59-
// // return ModelGenerateScreenBindings.of(annotation);
60-
// // // switch (params.fieldName) {
61-
// // // case ModelGenerateScreenBindingsFieldNames.args:
62-
// // // return annotation.copyWith(
63-
// // // ModelGenerateScreenBindings(
64-
// // // args: params.fieldValue.toMapValue()?.map(
65-
// // // (k, v) => MapEntry(k?.toStringValue(), v?.toStringValue()),
66-
// // // ),
67-
// // // ),
68-
// // // );
69-
// // // case ModelGenerateScreenBindingsFieldNames.isAccessibleOnlyIfLoggedInAndVerified:
70-
// // // return annotation.copyWith(
71-
// // // ModelGenerateScreenBindings(
72-
// // // isAccessibleOnlyIfLoggedInAndVerified: params.fieldValue.toBoolValue(),
73-
// // // ),
74-
// // // );
75-
// // // case ModelGenerateScreenBindingsFieldNames.isAccessibleOnlyIfLoggedIn:
76-
// // // return annotation.copyWith(
77-
// // // ModelGenerateScreenBindings(
78-
// // // isAccessibleOnlyIfLoggedIn: params.fieldValue.toBoolValue(),
79-
// // // ),
80-
// // // );
81-
// // // case ModelGenerateScreenBindingsFieldNames.isAccessibleOnlyIfLoggedOut:
82-
// // // return annotation.copyWith(
83-
// // // ModelGenerateScreenBindings(
84-
// // // isAccessibleOnlyIfLoggedOut: params.fieldValue.toBoolValue(),
85-
// // // ),
86-
// // // );
87-
// // // case ModelGenerateScreenBindingsFieldNames.isRedirectable:
88-
// // // return annotation.copyWith(
89-
// // // ModelGenerateScreenBindings(
90-
// // // isRedirectable: params.fieldValue.toBoolValue(),
91-
// // // ),
92-
// // // );
93-
// // // case ModelGenerateScreenBindingsFieldNames.path:
94-
// // // return annotation.copyWith(
95-
// // // ModelGenerateScreenBindings(
96-
// // // path: params.fieldValue.toStringValue(),
97-
// // // ),
98-
// // // );
99-
// // // case ModelGenerateScreenBindingsFieldNames.queryParameters:
100-
// // // return annotation.copyWith(
101-
// // // ModelGenerateScreenBindings(
102-
// // // queryParameters: {
103-
// // // ...?annotation.queryParameters,
104-
// // // ...?params.fieldValue.toSetValue()?.map((e) {
105-
// // // final field = FieldModel(
106-
// // // fieldPath: e.fieldPathFromRecord()!,
107-
// // // fieldType: e.fieldTypeFromRecord()!,
108-
// // // nullable: e.nullableFromRecord()!,
109-
// // // );
110-
// // // return field.toRecord;
111-
// // // }),
112-
// // // },
113-
// // // ),
114-
// // // );
115-
// // // case ModelGenerateScreenBindingsFieldNames.internalParameters:
116-
// // // return annotation.copyWith(
117-
// // // ModelGenerateScreenBindings(
118-
// // // internalParameters: {
119-
// // // ...?annotation.internalParameters,
120-
// // // ...?params.fieldValue.toSetValue()?.map((e) {
121-
// // // final field = FieldModel(
122-
// // // fieldPath: e.fieldPathFromRecord()!,
123-
// // // fieldType: e.fieldTypeFromRecord()!,
124-
// // // nullable: e.nullableFromRecord()!,
125-
// // // );
126-
// // // return field.toRecord;
127-
// // // }),
128-
// // // },
129-
// // // ),
130-
// // // );
131-
// // // case ModelGenerateScreenBindingsFieldNames.title:
132-
// // // return annotation.copyWith(
133-
// // // ModelGenerateScreenBindings(
134-
// // // title: params.fieldValue.toStringValue(),
135-
// // // ),
136-
// // // );
137-
// // // case ModelGenerateScreenBindingsFieldNames.className:
138-
// // // return annotation.copyWith(
139-
// // // ModelGenerateScreenBindings(
140-
// // // className: params.fieldValue.toStringValue(),
141-
// // // ),
142-
// // // );
143-
// // // case ModelGenerateScreenBindingsFieldNames.screenKey:
144-
// // // return annotation.copyWith(
145-
// // // ModelGenerateScreenBindings(
146-
// // // screenKey: params.fieldValue.toStringValue(),
147-
// // // ),
148-
// // // );
149-
// // // case ModelGenerateScreenBindingsFieldNames.keyStringCase:
150-
// // // return annotation.copyWith(
151-
// // // ModelGenerateScreenBindings(
152-
// // // keyStringCase: params.fieldValue.toStringValue(),
153-
// // // ),
154-
// // // );
155-
// // // default:
156-
// // // return ModelGenerateScreenBindings.of(annotation);
157-
// // // }
158-
// // }
54+
ModelGenerateScreenBindings _updateFromClassAnnotationField(
55+
ModelGenerateScreenBindings annotation,
56+
OnClassAnnotationFieldParams params,
57+
) {
58+
switch (params.fieldName) {
59+
case ModelGenerateScreenBindingsFieldNames.args:
60+
return annotation.copyWith(
61+
ModelGenerateScreenBindings(
62+
args: params.fieldValue.toMapValue()?.map(
63+
(k, v) => MapEntry(k?.toStringValue(), v?.toStringValue()),
64+
),
65+
),
66+
);
67+
case ModelGenerateScreenBindingsFieldNames.isAccessibleOnlyIfLoggedInAndVerified:
68+
return annotation.copyWith(
69+
ModelGenerateScreenBindings(
70+
isAccessibleOnlyIfLoggedInAndVerified: params.fieldValue.toBoolValue(),
71+
),
72+
);
73+
case ModelGenerateScreenBindingsFieldNames.isAccessibleOnlyIfLoggedIn:
74+
return annotation.copyWith(
75+
ModelGenerateScreenBindings(
76+
isAccessibleOnlyIfLoggedIn: params.fieldValue.toBoolValue(),
77+
),
78+
);
79+
case ModelGenerateScreenBindingsFieldNames.isAccessibleOnlyIfLoggedOut:
80+
return annotation.copyWith(
81+
ModelGenerateScreenBindings(
82+
isAccessibleOnlyIfLoggedOut: params.fieldValue.toBoolValue(),
83+
),
84+
);
85+
case ModelGenerateScreenBindingsFieldNames.isRedirectable:
86+
return annotation.copyWith(
87+
ModelGenerateScreenBindings(
88+
isRedirectable: params.fieldValue.toBoolValue(),
89+
),
90+
);
91+
case ModelGenerateScreenBindingsFieldNames.path:
92+
return annotation.copyWith(
93+
ModelGenerateScreenBindings(
94+
path: params.fieldValue.toStringValue(),
95+
),
96+
);
97+
case ModelGenerateScreenBindingsFieldNames.queryParameters:
98+
return annotation.copyWith(
99+
ModelGenerateScreenBindings(
100+
queryParameters: {
101+
...?annotation.queryParameters,
102+
...?params.fieldValue.toSetValue()?.map((e) {
103+
final field = FieldModel(
104+
fieldPath: e.fieldPathFromRecord()!,
105+
fieldType: e.fieldTypeFromRecord()!,
106+
nullable: e.nullableFromRecord()!,
107+
);
108+
return field.toRecord;
109+
}),
110+
},
111+
),
112+
);
113+
case ModelGenerateScreenBindingsFieldNames.internalParameters:
114+
return annotation.copyWith(
115+
ModelGenerateScreenBindings(
116+
internalParameters: {
117+
...?annotation.internalParameters,
118+
...?params.fieldValue.toSetValue()?.map((e) {
119+
final field = FieldModel(
120+
fieldPath: e.fieldPathFromRecord()!,
121+
fieldType: e.fieldTypeFromRecord()!,
122+
nullable: e.nullableFromRecord()!,
123+
);
124+
return field.toRecord;
125+
}),
126+
},
127+
),
128+
);
129+
case ModelGenerateScreenBindingsFieldNames.title:
130+
return annotation.copyWith(
131+
ModelGenerateScreenBindings(
132+
title: params.fieldValue.toStringValue(),
133+
),
134+
);
135+
case ModelGenerateScreenBindingsFieldNames.className:
136+
return annotation.copyWith(
137+
ModelGenerateScreenBindings(
138+
className: params.fieldValue.toStringValue(),
139+
),
140+
);
141+
case ModelGenerateScreenBindingsFieldNames.screenKey:
142+
return annotation.copyWith(
143+
ModelGenerateScreenBindings(
144+
screenKey: params.fieldValue.toStringValue(),
145+
),
146+
);
147+
case ModelGenerateScreenBindingsFieldNames.keyStringCase:
148+
return annotation.copyWith(
149+
ModelGenerateScreenBindings(
150+
keyStringCase: params.fieldValue.toStringValue(),
151+
),
152+
);
153+
default:
154+
return ModelGenerateScreenBindings.of(annotation);
155+
}
156+
}
159157

160-
// // ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
158+
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
161159

162-
// typedef _ClassInsight = ClassInsight<ModelGenerateScreenBindings>;
160+
typedef _ClassInsight = ClassInsight<ModelGenerateScreenBindings>;

0 commit comments

Comments
 (0)