base64EncodeIfFlaggedHook function

HiHook base64EncodeIfFlaggedHook({
  1. String uid = 'base64:encodeIfFlagged',
  2. List<String> events = const ['write', 'put'],
  3. HiPhase phase = HiPhase.pre,
  4. int priority = 0,
  5. bool urlSafe = false,
  6. String flagKey = 'encode',
})

Creates a conditional Base64 encode hook.

Only encodes when payload.extra'encode' is true. Useful when encoding should be opt-in per operation.

Implementation

HiHook<dynamic, dynamic> base64EncodeIfFlaggedHook({
  String uid = 'base64:encodeIfFlagged',
  List<String> events = const ['write', 'put'],
  HiPhase phase = HiPhase.pre,
  int priority = 0,
  bool urlSafe = false,
  String flagKey = 'encode',
}) {
  final encoder = base64EncodeHook(
    uid: uid,
    events: events,
    phase: phase,
    priority: priority,
    urlSafe: urlSafe,
  );

  return HiHook<dynamic, dynamic>(
    uid: uid,
    events: events,
    phase: phase,
    priority: priority,
    handler: (payload, ctx) {
      final shouldEncode = payload.metadata?[flagKey] == true;
      if (!shouldEncode) return const HiContinue();
      return encoder.handler(payload, ctx);
    },
  );
}