put method

Future<void> put(
  1. String key,
  2. Map<String, dynamic> value
)

Store a value in storage.

Implementation

Future<void> put(String key, Map<String, dynamic> value) async {
  switch (storageType) {
    case StorageType.inMemory:
      final bridge = PVBridge();
      final db = await bridge.getDatabaseForType(storageType);
      final storeName = isMetadata
          ? ctx.cache.metadataNameFunction!(ctx.cache.env)
          : ctx.cache.env;
      final store = bridge.getStore(storeName, storageType);
      await store.record(key).put(db, value);
      break;

    case StorageType.stdSembast:
      final bridge = PVBridge();
      final db = await bridge.getDatabaseForType(
        storageType,
        heavy: ctx.cache.heavy,
        env: ctx.cache.env,
      );
      final storeName = isMetadata
          ? ctx.cache.metadataNameFunction!(ctx.cache.env)
          : ctx.cache.env;
      final store = bridge.getStore(storeName, storageType);
      await store.record(key).put(db, value);
      break;

    case StorageType.secureStorage:
      // Convert to JSON string for secure storage
      await PVBridge.secureStorage.write(
        key: key,
        value: value['value'].toString(),
      );
      break;
  }
}