metaPut method

  1. @override
Future<void> metaPut(
  1. String key,
  2. Map<String, dynamic> value
)
override

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);
}