Skip to content

Commit 69dfd97

Browse files
committed
fix(dynamite_runtime)!: Make RawResponseEncoder/Decoder compatible with JsonEncoder/Decoder
Signed-off-by: provokateurin <kate@provokateurin.de>
1 parent 526cd84 commit 69dfd97

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

packages/dynamite/dynamite_runtime/lib/src/client/response.dart

+7-3
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ final class ResponseConverter<B, H> with Converter<http.StreamedResponse, Future
153153
}
154154

155155
/// Encoder to efficiently convert a raw response to json.
156-
final class RawResponseEncoder with Converter<DynamiteRawResponse<dynamic, dynamic>, Map<String, Object?>> {
156+
final class RawResponseEncoder with Converter<DynamiteRawResponse<dynamic, dynamic>, Object?> {
157157
/// Creates a new raw response encoder.
158158
const RawResponseEncoder();
159159

@@ -166,15 +166,19 @@ final class RawResponseEncoder with Converter<DynamiteRawResponse<dynamic, dynam
166166
}
167167

168168
/// Encoder to revive the json from a raw response.
169-
final class RawResponseDecoder<B, H> with Converter<Map<String, Object?>, DynamiteResponse<B, H>> {
169+
final class RawResponseDecoder<B, H> with Converter<Object?, DynamiteResponse<B, H>> {
170170
/// Creates a new raw response decoder.
171171
const RawResponseDecoder(this.serializer);
172172

173173
/// The serializer to convert the raw header and body into [B] and [H].
174174
final DynamiteSerializer<B, H> serializer;
175175

176176
@override
177-
DynamiteResponse<B, H> convert(Map<String, Object?> input) {
177+
DynamiteResponse<B, H> convert(Object? input) {
178+
if (input is! Map<String, Object?>) {
179+
throw ArgumentError('Expected Map<String, Object?>, got ${input.runtimeType} instead');
180+
}
181+
178182
final rawHeaders = input['headers'];
179183
final headers = _deserialize<H>(rawHeaders, serializer.serializers, serializer.headersType);
180184

0 commit comments

Comments
 (0)