valueToContent method
Content
valueToContent(
- DataSchemaValue<
Object?> ? value, - DataSchema? dataSchema, [
- String mediaType = defaultMediaType
Converts a value to a byte representation based on its mediaType.
The passed value is validated before the conversion in accordance to the
dataSchema that is being passed to the method.
The value might be null, indicating that an equivalent of JavaScript's
undefined is being passed to the method.
In this case, validation fails if a non-empty dataSchema is present,
as some kind of DataSchemaValue is expected.
If the indicated mediaType is not supported, the method will try to try
to treat it as a UTF-8 string.
Implementation
Content valueToContent(
DataSchemaValue<Object?>? value,
DataSchema? dataSchema, [
String mediaType = defaultMediaType,
]) {
_validateValue(value, dataSchema);
if (value == null) {
return Content(mediaType, const Stream.empty());
}
final parsedMediaType = MediaType.parse(mediaType);
final mimeType = parsedMediaType.mimeType;
final parameters = parsedMediaType.parameters;
// TODO(JKRhb): Reevaluate usage of TextCodec here
final codec = _getCodecFromMediaType(mimeType) ?? TextCodec();
final bytes = codec.valueToBytes(value, dataSchema, parameters);
return Content(mediaType, Stream.value(bytes));
}