CustomParameterCodec class final

annotation to define a custom parameter decoder/encoder this is useful when the is encoded/decoded in a non-standard way like base64Url this must be used as an annotation on a field

String fromBase64(String value) {
  return const Utf8Decoder()
    .convert(base64Url.decode(base64Url.normalize(value)));
}
String toBase64(String value) {
  return base64Url.encode(const Utf8Encoder().convert(value));
}
@TypedGoRoute<JsonRoute>(path: 'json')
class JsonRoute extends GoRouteData with _$EncodedRoute {
  @CustomParameterCodec(
    encode: toBase64,
    decode: fromBase64,
  )
  final String data;
  JsonRoute(this.data);
}
Annotations
  • @Target.new(<TargetKind>{TargetKind.field})

Constructors

CustomParameterCodec({required String encode(String field), required String decode(String field)})
create a custom parameter codec
const

Properties

decode String Function(String field)
custom function to decode the field
final
encode String Function(String field)
custom function to encode the field
final
hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited