base64EncodeIfFlaggedHook function
HiHook
base64EncodeIfFlaggedHook({})
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);
},
);
}