[dart-dio] Fix anyOf serialization (#14528)

Fixes #14519
This commit is contained in:
Szabolcs Székelyi
2023-02-08 03:22:20 +01:00
committed by GitHub
parent 26eb1dc805
commit 0f1919ee53

View File

@@ -59,14 +59,15 @@ class _${{classname}}Serializer implements PrimitiveSerializer<{{classname}}> {
{{#anyOf}}
{{#-first}}
final anyOf = object.anyOf;
final result = {{^vendorExtensions.x-has-self-and-ancestor-only-props}}<Object?>[]{{/vendorExtensions.x-has-self-and-ancestor-only-props}}{{#vendorExtensions.x-has-self-and-ancestor-only-props}}_serializeProperties(serializers, object, specifiedType: specifiedType).toList(){{/vendorExtensions.x-has-self-and-ancestor-only-props}};
for (var _valueEntry in anyOf.values.entries) {
final _typeIndex = _valueEntry.key;
final _type = anyOf.types[_typeIndex];
final _value = _valueEntry.value;
result.addAll(serializers.serialize(_value, specifiedType: FullType(_type)) as Iterable<Object?>);
}
{{#vendorExtensions.x-self-and-ancestor-only-props}}
final result = _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
final serialized = serializers.serialize(anyOf, specifiedType: FullType(AnyOf, anyOf.valueTypes.map((type) => FullType(type)).toList()));
result.addAll((serialized is Map ? serialized.entries.map((e) => <dynamic>[e.key, e.value]).expand<dynamic>((e) => e) : serialized) as Iterable<Object?>);
return result;
{{/vendorExtensions.x-self-and-ancestor-only-props}}
{{^vendorExtensions.x-self-and-ancestor-only-props}}
return serializers.serialize(anyOf, specifiedType: FullType(AnyOf, anyOf.valueTypes.map((type) => FullType(type)).toList()))!;
{{/vendorExtensions.x-self-and-ancestor-only-props}}
{{/-first}}
{{/anyOf}}
{{^oneOf}}