encodeTyped<T> function
Encodes a typed value to its transfer representation. (JSON)
codec can be used to override the default codec for type T.
name is used in error messages for debugging purposes.
Implementation
dynamic encodeTyped<T>(T value, {TransferCodec<T>? codec}) {
if (value == null) {
if (!TypeCheck<T>().isNullable) {
// this should not be possible
throw CodecException.typeMismatch(T, value.runtimeType, null);
}
return null;
}
codec ??= TransferCodec.find<T>();
if (codec != null) {
return (codec as dynamic).encode(value);
}
throw ApiError.invalidType(T);
}