Skip to content

Commit 4395194

Browse files
JaseEldertshedor
andauthored
eng(build): upgrade analyzer, build and source_gen dependencies (#650)
Co-authored-by: Tim Shedor <[email protected]>
1 parent 15b5b77 commit 4395194

File tree

57 files changed

+340
-201
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+340
-201
lines changed

analysis_options.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ linter:
113113
- null_closures
114114
- omit_local_variable_types
115115
- omit_obvious_local_variable_types
116-
- omit_obvious_property_types
116+
# - omit_obvious_property_types
117117
- one_member_abstracts
118118
- only_throw_errors
119119
- overridden_fields

example_rest/lib/brick/db/schema.g.dart

Lines changed: 69 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,72 @@ part '20200121222037.migration.dart';
88
final migrations = <Migration>{const Migration20210111042657(), const Migration20200121222037()};
99

1010
/// A consumable database structure including the latest generated migration.
11-
final schema = Schema(20210111042657, generatorVersion: 1, tables: <SchemaTable>{
12-
SchemaTable('_brick_Customer_pizzas', columns: <SchemaColumn>{
13-
SchemaColumn('_brick_id', Column.integer,
14-
autoincrement: true, nullable: false, isPrimaryKey: true),
15-
SchemaColumn('l_Customer_brick_id', Column.integer,
16-
isForeignKey: true,
17-
foreignTableName: 'Customer',
18-
onDeleteCascade: true,
19-
onDeleteSetDefault: false),
20-
SchemaColumn('f_Pizza_brick_id', Column.integer,
21-
isForeignKey: true,
22-
foreignTableName: 'Pizza',
23-
onDeleteCascade: true,
24-
onDeleteSetDefault: false)
25-
}, indices: <SchemaIndex>{
26-
SchemaIndex(columns: ['l_Customer_brick_id', 'f_Pizza_brick_id'], unique: true)
27-
}),
28-
SchemaTable('Customer', columns: <SchemaColumn>{
29-
SchemaColumn('_brick_id', Column.integer,
30-
autoincrement: true, nullable: false, isPrimaryKey: true),
31-
SchemaColumn('id', Column.integer, unique: true),
32-
SchemaColumn('first_name', Column.varchar),
33-
SchemaColumn('last_name', Column.varchar)
34-
}, indices: <SchemaIndex>{}),
35-
SchemaTable('Pizza', columns: <SchemaColumn>{
36-
SchemaColumn('_brick_id', Column.integer,
37-
autoincrement: true, nullable: false, isPrimaryKey: true),
38-
SchemaColumn('id', Column.integer, unique: true),
39-
SchemaColumn('toppings', Column.varchar),
40-
SchemaColumn('frozen', Column.boolean)
41-
}, indices: <SchemaIndex>{})
42-
});
11+
final schema = Schema(
12+
20210111042657,
13+
generatorVersion: 1,
14+
tables: <SchemaTable>{
15+
SchemaTable(
16+
'_brick_Customer_pizzas',
17+
columns: <SchemaColumn>{
18+
SchemaColumn(
19+
'_brick_id',
20+
Column.integer,
21+
autoincrement: true,
22+
nullable: false,
23+
isPrimaryKey: true,
24+
),
25+
SchemaColumn(
26+
'l_Customer_brick_id',
27+
Column.integer,
28+
isForeignKey: true,
29+
foreignTableName: 'Customer',
30+
onDeleteCascade: true,
31+
onDeleteSetDefault: false,
32+
),
33+
SchemaColumn(
34+
'f_Pizza_brick_id',
35+
Column.integer,
36+
isForeignKey: true,
37+
foreignTableName: 'Pizza',
38+
onDeleteCascade: true,
39+
onDeleteSetDefault: false,
40+
),
41+
},
42+
indices: <SchemaIndex>{
43+
SchemaIndex(columns: ['l_Customer_brick_id', 'f_Pizza_brick_id'], unique: true),
44+
},
45+
),
46+
SchemaTable(
47+
'Customer',
48+
columns: <SchemaColumn>{
49+
SchemaColumn(
50+
'_brick_id',
51+
Column.integer,
52+
autoincrement: true,
53+
nullable: false,
54+
isPrimaryKey: true,
55+
),
56+
SchemaColumn('id', Column.integer, unique: true),
57+
SchemaColumn('first_name', Column.varchar),
58+
SchemaColumn('last_name', Column.varchar),
59+
},
60+
indices: <SchemaIndex>{},
61+
),
62+
SchemaTable(
63+
'Pizza',
64+
columns: <SchemaColumn>{
65+
SchemaColumn(
66+
'_brick_id',
67+
Column.integer,
68+
autoincrement: true,
69+
nullable: false,
70+
isPrimaryKey: true,
71+
),
72+
SchemaColumn('id', Column.integer, unique: true),
73+
SchemaColumn('toppings', Column.varchar),
74+
SchemaColumn('frozen', Column.boolean),
75+
},
76+
indices: <SchemaIndex>{},
77+
),
78+
},
79+
);

example_supabase/lib/brick/brick.g.dart

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,11 @@ import 'package:brick_sqlite/brick_sqlite.dart';
99
// ignore: unused_import, unused_shown_name, unnecessary_import
1010
import 'package:brick_supabase/brick_supabase.dart';
1111
// ignore: unused_import, unused_shown_name, unnecessary_import
12-
import 'package:pizza_shoppe/brick/models/customer.model.dart'; // GENERATED CODE DO NOT EDIT
12+
import 'package:pizza_shoppe/brick/models/customer.model.dart';// GENERATED CODE DO NOT EDIT
1313
// ignore: unused_import
1414
import 'dart:convert';
15-
import 'package:brick_sqlite/brick_sqlite.dart'
16-
show
17-
SqliteModel,
18-
SqliteAdapter,
19-
SqliteModelDictionary,
20-
RuntimeSqliteColumnDefinition,
21-
SqliteProvider;
22-
import 'package:brick_supabase/brick_supabase.dart'
23-
show SupabaseProvider, SupabaseModel, SupabaseAdapter, SupabaseModelDictionary;
15+
import 'package:brick_sqlite/brick_sqlite.dart' show SqliteModel, SqliteAdapter, SqliteModelDictionary, RuntimeSqliteColumnDefinition, SqliteProvider;
16+
import 'package:brick_supabase/brick_supabase.dart' show SupabaseProvider, SupabaseModel, SupabaseAdapter, SupabaseModelDictionary;
2417
// ignore: unused_import, unused_shown_name
2518
import 'package:brick_offline_first/brick_offline_first.dart' show RuntimeOfflineFirstDefinition;
2619
// ignore: unused_import, unused_shown_name

example_supabase/lib/brick/db/schema.g.dart

Lines changed: 45 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,48 @@ part '20240920063917.migration.dart';
77
final migrations = <Migration>{const Migration20240920063917()};
88

99
/// A consumable database structure including the latest generated migration.
10-
final schema = Schema(20240920063917, generatorVersion: 1, tables: <SchemaTable>{
11-
SchemaTable('Customer', columns: <SchemaColumn>{
12-
SchemaColumn('_brick_id', Column.integer,
13-
autoincrement: true, nullable: false, isPrimaryKey: true),
14-
SchemaColumn('id', Column.varchar, unique: true),
15-
SchemaColumn('first_name', Column.varchar),
16-
SchemaColumn('last_name', Column.varchar)
17-
}, indices: <SchemaIndex>{}),
18-
SchemaTable('Pizza', columns: <SchemaColumn>{
19-
SchemaColumn('_brick_id', Column.integer,
20-
autoincrement: true, nullable: false, isPrimaryKey: true),
21-
SchemaColumn('id', Column.varchar, unique: true),
22-
SchemaColumn('frozen', Column.boolean),
23-
SchemaColumn('customer_Customer_brick_id', Column.integer,
24-
isForeignKey: true,
25-
foreignTableName: 'Customer',
26-
onDeleteCascade: false,
27-
onDeleteSetDefault: false)
28-
}, indices: <SchemaIndex>{})
29-
});
10+
final schema = Schema(
11+
20240920063917,
12+
generatorVersion: 1,
13+
tables: <SchemaTable>{
14+
SchemaTable(
15+
'Customer',
16+
columns: <SchemaColumn>{
17+
SchemaColumn(
18+
'_brick_id',
19+
Column.integer,
20+
autoincrement: true,
21+
nullable: false,
22+
isPrimaryKey: true,
23+
),
24+
SchemaColumn('id', Column.varchar, unique: true),
25+
SchemaColumn('first_name', Column.varchar),
26+
SchemaColumn('last_name', Column.varchar),
27+
},
28+
indices: <SchemaIndex>{},
29+
),
30+
SchemaTable(
31+
'Pizza',
32+
columns: <SchemaColumn>{
33+
SchemaColumn(
34+
'_brick_id',
35+
Column.integer,
36+
autoincrement: true,
37+
nullable: false,
38+
isPrimaryKey: true,
39+
),
40+
SchemaColumn('id', Column.varchar, unique: true),
41+
SchemaColumn('frozen', Column.boolean),
42+
SchemaColumn(
43+
'customer_Customer_brick_id',
44+
Column.integer,
45+
isForeignKey: true,
46+
foreignTableName: 'Customer',
47+
onDeleteCascade: false,
48+
onDeleteSetDefault: false,
49+
),
50+
},
51+
indices: <SchemaIndex>{},
52+
),
53+
},
54+
);

packages/brick_build/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 4.2.0
2+
3+
- Support `analyzer` `>=8.0.0 <10.0.0`
4+
- Support `build` `>=3.0.0 <5.0.0`
5+
- Support `source_gen` `>=3.0.0 <5.0.0`
6+
17
## 4.0.0
28

39
- Dart minimum SDK is updated to `3.4.0`

packages/brick_build/example/file_deserialize.dart

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,28 @@
11
import 'package:analyzer/dart/element/element.dart';
22
import 'package:brick_build/generators.dart';
3+
import 'package:brick_core/src/model.dart';
4+
35
import 'file_fields.dart';
46
import 'file_serdes_generator.dart';
57

68
/// Read from a file's contents to produce a model
79
class FileDeserialize extends FileSerdesGenerator {
810
FileDeserialize(
9-
ClassElement element,
10-
FileFields fields, {
11-
required String repositoryName,
12-
}) : super(element, fields, repositoryName: repositoryName);
11+
super.element,
12+
FileFields super.fields, {
13+
required super.repositoryName,
14+
});
1315

1416
@override
1517
final doesDeserialize = true;
1618

1719
@override
18-
String? coderForField(field, checker, {required wrappedInFuture, required fieldAnnotation}) {
20+
String? coderForField(
21+
FieldElement field,
22+
SharedChecker<Model> checker, {
23+
required bool wrappedInFuture,
24+
required File fieldAnnotation,
25+
}) {
1926
final fieldValue = serdesValueForField(field, fieldAnnotation.name, checker: checker);
2027
final defaultValue = SerdesGenerator.defaultValueSuffix(fieldAnnotation);
2128

@@ -33,15 +40,21 @@ class FileDeserialize extends FileSerdesGenerator {
3340
} else if (checker.isIterable) {
3441
final argType = checker.unFuturedArgType;
3542
final argTypeChecker = checkerForType(checker.argType);
36-
final castIterable = SerdesGenerator.iterableCast(argType,
37-
isSet: checker.isSet,
38-
isList: checker.isList,
39-
isFuture: wrappedInFuture || checker.isFuture);
43+
final castIterable = SerdesGenerator.iterableCast(
44+
argType,
45+
isSet: checker.isSet,
46+
isList: checker.isList,
47+
isFuture: wrappedInFuture || checker.isFuture,
48+
);
4049

4150
// Iterable<OfflineFirstModel>, Iterable<Future<OfflineFirstModel>>
4251
if (checker.isArgTypeASibling) {
43-
final fromFileCast = SerdesGenerator.iterableCast(argType,
44-
isSet: checker.isSet, isList: checker.isList, isFuture: true);
52+
final fromFileCast = SerdesGenerator.iterableCast(
53+
argType,
54+
isSet: checker.isSet,
55+
isList: checker.isList,
56+
isFuture: true,
57+
);
4558

4659
var deserializeMethod = '''
4760
$fieldValue?.map((d) =>

packages/brick_build/example/file_serialize.dart

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
import 'package:analyzer/dart/element/element.dart';
12
import 'package:brick_build/generators.dart';
3+
import 'package:brick_core/src/model.dart';
24

5+
import 'file_fields.dart';
36
import 'file_serdes_generator.dart';
47

58
/// Generate serialized code for each field to write to a file
@@ -14,7 +17,12 @@ class FileSerialize<_Model extends FileModel> extends FileSerdesGenerator<_Model
1417
final doesDeserialize = false;
1518

1619
@override
17-
String? coderForField(field, checker, {required wrappedInFuture, required fieldAnnotation}) {
20+
String? coderForField(
21+
FieldElement field,
22+
SharedChecker<Model> checker, {
23+
required bool wrappedInFuture,
24+
required File fieldAnnotation,
25+
}) {
1826
final fieldValue = serdesValueForField(field, fieldAnnotation.name, checker: checker);
1927

2028
// DateTime

packages/brick_build/lib/src/annotation_finder.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:source_gen/source_gen.dart';
77

88
/// Find an [Annotation] per field.
99
abstract class AnnotationFinder<Annotation extends Object> {
10-
final _columnChecker = TypeChecker.fromRuntime(Annotation);
10+
final _columnChecker = TypeChecker.typeNamed(Annotation);
1111

1212
/// Holder of previously generated [Annotation]s
1313
final _columnExpando = Expando<Annotation>();

packages/brick_build/lib/src/builders/base.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ abstract class BaseBuilder<_ClassAnnotation> implements Builder {
2424
String get outputExtension;
2525

2626
///
27-
final typeChecker = TypeChecker.fromRuntime(_ClassAnnotation);
27+
final typeChecker = TypeChecker.typeNamed(_ClassAnnotation);
2828

2929
///
3030
static const aggregateExtension = '.brick_aggregate';

packages/brick_build/lib/src/serdes_generator.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ abstract class SerdesGenerator<FieldAnnotation extends FieldSerializable,
4040
String get adapterMethodOutputType => doesDeserialize ? className : serializeOutputType;
4141

4242
///
43-
String get className => element.name;
43+
String get className => element.name!;
4444

4545
/// Discover factories within the class that rely on the provider.
4646
/// For example `factory User.fromRest`
@@ -224,11 +224,11 @@ abstract class SerdesGenerator<FieldAnnotation extends FieldSerializable,
224224
if (!doesDeserialize) return checkerForType(field.type);
225225
final defaultConstructor = _firstWhereOrNull<ConstructorElement>(
226226
element.constructors,
227-
(e) => !e.isFactory && e.name.isEmpty,
227+
(e) => !e.isFactory && ((e.name?.isEmpty ?? true) || e.name == 'new'),
228228
);
229-
final defaultConstructorParameter = defaultConstructor?.parameters != null
230-
? _firstWhereOrNull<ParameterElement>(
231-
defaultConstructor!.parameters,
229+
final defaultConstructorParameter = defaultConstructor?.formalParameters != null
230+
? _firstWhereOrNull<FormalParameterElement>(
231+
defaultConstructor!.formalParameters,
232232
(e) => e.name == field.name,
233233
)
234234
: null;
@@ -283,11 +283,11 @@ abstract class SerdesGenerator<FieldAnnotation extends FieldSerializable,
283283
final name = providerNameForField(annotation.name, checker: checker);
284284

285285
if (doesDeserialize && annotation.fromGenerator != null) {
286-
return digestPlaceholders(annotation.fromGenerator, name, field.name);
286+
return digestPlaceholders(annotation.fromGenerator, name, field.name!);
287287
}
288288

289289
if (!doesDeserialize && annotation.toGenerator != null) {
290-
return digestPlaceholders(annotation.toGenerator, name, field.name);
290+
return digestPlaceholders(annotation.toGenerator, name, field.name!);
291291
}
292292

293293
return null;

0 commit comments

Comments
 (0)