get method

Future<Map<String, dynamic>?> get(
  1. String key
)

Retrieve a value from storage.

Returns map from backend, or null if not found.

Implementation

Future<Map<String, dynamic>?> get(String key) 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);
      return await store.record(key).get(db);

    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);
      return await store.record(key).get(db);

    case StorageType.secureStorage:
      final value = await PVBridge.secureStorage.read(key: key);
      if (value == null) return null;
      // Parse JSON from secure storage
      return {'value': value};
  }
}