Skip to content

Commit 836f545

Browse files
authored
Use built_value 8.10.1 with MapSerializer and SetSerializer. (#4022)
1 parent 6a8b449 commit 836f545

File tree

2 files changed

+2
-142
lines changed

2 files changed

+2
-142
lines changed

build_runner_core/lib/src/asset_graph/serializers.dart

Lines changed: 0 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ final Serializers serializers =
3737
(_$serializers.toBuilder()
3838
..add(identityAssetIdSerializer)
3939
..add(DigestSerializer())
40-
..add(MapSerializer())
41-
..add(SetSerializer())
4240
..addBuilderFactory(
4341
const FullType(Set, [FullType(AssetId)]),
4442
() => <AssetId>{},
@@ -119,141 +117,3 @@ class DigestSerializer implements PrimitiveSerializer<Digest> {
119117
FullType specifiedType = FullType.unspecified,
120118
}) => base64.encode(object.bytes);
121119
}
122-
123-
// TODO(davidmorgan): this is a fork of `BuiltMapSerializer` from `built_value`
124-
// adapted for SDK maps, upstream it.
125-
class MapSerializer implements StructuredSerializer<Map> {
126-
final bool structured = true;
127-
@override
128-
final Iterable<Type> types = BuiltList<Type>([
129-
Map,
130-
<Object, Object>{}.runtimeType,
131-
]);
132-
@override
133-
final String wireName = 'map';
134-
135-
@override
136-
Iterable<Object?> serialize(
137-
Serializers serializers,
138-
Map builtMap, {
139-
FullType specifiedType = FullType.unspecified,
140-
}) {
141-
var isUnderspecified =
142-
specifiedType.isUnspecified || specifiedType.parameters.isEmpty;
143-
if (!isUnderspecified) serializers.expectBuilder(specifiedType);
144-
145-
var keyType =
146-
specifiedType.parameters.isEmpty
147-
? FullType.unspecified
148-
: specifiedType.parameters[0];
149-
var valueType =
150-
specifiedType.parameters.isEmpty
151-
? FullType.unspecified
152-
: specifiedType.parameters[1];
153-
154-
var result = <Object?>[];
155-
for (var key in builtMap.keys) {
156-
result.add(serializers.serialize(key, specifiedType: keyType));
157-
final value = builtMap[key];
158-
result.add(serializers.serialize(value, specifiedType: valueType));
159-
}
160-
return result;
161-
}
162-
163-
@override
164-
Map deserialize(
165-
Serializers serializers,
166-
Iterable serialized, {
167-
FullType specifiedType = FullType.unspecified,
168-
}) {
169-
var isUnderspecified =
170-
specifiedType.isUnspecified || specifiedType.parameters.isEmpty;
171-
172-
var keyType =
173-
specifiedType.parameters.isEmpty
174-
? FullType.unspecified
175-
: specifiedType.parameters[0];
176-
var valueType =
177-
specifiedType.parameters.isEmpty
178-
? FullType.unspecified
179-
: specifiedType.parameters[1];
180-
181-
var result =
182-
isUnderspecified
183-
? <Object, Object>{}
184-
: serializers.newBuilder(specifiedType) as Map;
185-
186-
if (serialized.length.isOdd) {
187-
throw ArgumentError('odd length');
188-
}
189-
190-
for (var i = 0; i != serialized.length; i += 2) {
191-
final key = serializers.deserialize(
192-
serialized.elementAt(i),
193-
specifiedType: keyType,
194-
);
195-
final value = serializers.deserialize(
196-
serialized.elementAt(i + 1),
197-
specifiedType: valueType,
198-
);
199-
result[key] = value;
200-
}
201-
202-
return result;
203-
}
204-
}
205-
206-
// TODO(davidmorgan): this is a fork of `BuiltSetSerializer` from `built_value`
207-
// adapted for SDK sets, upstream it.
208-
class SetSerializer implements StructuredSerializer<Set> {
209-
final bool structured = true;
210-
@override
211-
final Iterable<Type> types = BuiltList<Type>([Set, <Object>{}.runtimeType]);
212-
@override
213-
final String wireName = 'set';
214-
215-
@override
216-
Iterable<Object?> serialize(
217-
Serializers serializers,
218-
Set builtSet, {
219-
FullType specifiedType = FullType.unspecified,
220-
}) {
221-
var isUnderspecified =
222-
specifiedType.isUnspecified || specifiedType.parameters.isEmpty;
223-
if (!isUnderspecified) serializers.expectBuilder(specifiedType);
224-
225-
var elementType =
226-
specifiedType.parameters.isEmpty
227-
? FullType.unspecified
228-
: specifiedType.parameters[0];
229-
230-
return builtSet.map(
231-
(item) => serializers.serialize(item, specifiedType: elementType),
232-
);
233-
}
234-
235-
@override
236-
Set deserialize(
237-
Serializers serializers,
238-
Iterable serialized, {
239-
FullType specifiedType = FullType.unspecified,
240-
}) {
241-
var isUnderspecified =
242-
specifiedType.isUnspecified || specifiedType.parameters.isEmpty;
243-
244-
var elementType =
245-
specifiedType.parameters.isEmpty
246-
? FullType.unspecified
247-
: specifiedType.parameters[0];
248-
var result =
249-
isUnderspecified
250-
? <Object>{}
251-
: serializers.newBuilder(specifiedType) as Set;
252-
253-
for (final item in serialized) {
254-
result.add(serializers.deserialize(item, specifiedType: elementType));
255-
}
256-
257-
return result;
258-
}
259-
}

build_runner_core/pubspec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ dependencies:
1919
build_config: ^1.0.0
2020
build_resolvers: ^2.4.0
2121
built_collection: ^5.1.1
22-
built_value: ^8.9.5
22+
built_value: ^8.10.1
2323
collection: ^1.15.0
2424
convert: ^3.0.0
2525
crypto: ^3.0.0
@@ -40,7 +40,7 @@ dev_dependencies:
4040
path: ../_test_common
4141
build_runner: ^2.0.0
4242
build_test: ^3.0.0-wip
43-
built_value_generator: ^8.9.5
43+
built_value_generator: ^8.10.1
4444
dart_flutter_team_lints: ^3.1.0
4545
json_serializable: ^6.0.0
4646
test: ^1.16.0

0 commit comments

Comments
 (0)