ensureTaskPayloadEncoderRegistry function

TaskPayloadEncoderRegistry ensureTaskPayloadEncoderRegistry(
  1. TaskPayloadEncoderRegistry? registry, {
  2. TaskPayloadEncoder resultEncoder = const JsonTaskPayloadEncoder(),
  3. TaskPayloadEncoder argsEncoder = const JsonTaskPayloadEncoder(),
  4. Iterable<TaskPayloadEncoder> additionalEncoders = const [],
})

Ensures a TaskPayloadEncoderRegistry is available, instantiating one when registry is null and registering any additionalEncoders with whichever registry is ultimately used.

Example usage:

final registry = ensureTaskPayloadEncoderRegistry(
  null,
  resultEncoder: JsonTaskPayloadEncoder(),
  argsEncoder: JsonTaskPayloadEncoder(),
  additionalEncoders: [MyCustomEncoder()],
);

Implementation

TaskPayloadEncoderRegistry ensureTaskPayloadEncoderRegistry(
  TaskPayloadEncoderRegistry? registry, {
  TaskPayloadEncoder resultEncoder = const JsonTaskPayloadEncoder(),
  TaskPayloadEncoder argsEncoder = const JsonTaskPayloadEncoder(),
  Iterable<TaskPayloadEncoder> additionalEncoders = const [],
}) {
  final resolved =
      registry ??
      TaskPayloadEncoderRegistry(
        defaultResultEncoder: resultEncoder,
        defaultArgsEncoder: argsEncoder,
        additionalEncoders: additionalEncoders,
      );
  if (registry != null) {
    additionalEncoders.forEach(resolved.register);
  }
  return resolved;
}