metaPut method
Implementation
@override
Future<void> metaPut(String key, Map<String, dynamic> value) async {
final box = await meta;
if (box == null) return;
// Metadata is always Map<String, dynamic> - just JSON encode
String serializedMeta = jsonEncode(value);
// Apply terminal serialization (e.g., encryption, compression)
String finalMeta = await ctx.control.emit(
TriggerType.onMetaTSerialize.name,
action: (ctx) async {
String result = serializedMeta;
for (var hook in this.ctx.config.metaTerminalSerializationHooks) {
result = await hook.serialize(result, ctx);
}
return result;
},
);
await box.put(key, finalMeta);
}