import 'dart:convert'; import 'dart:io'; import 'package:twonly/globals.dart'; import 'package:twonly/src/utils/log.dart'; class KeyValueStore { static Future _getFilePath(String key) async { return File('${AppEnvironment.supportDir}/keyvalue/$key.json'); } static Future delete(String key) async { try { final file = await _getFilePath(key); if (file.existsSync()) { file.deleteSync(); } } catch (e) { Log.error('Error deleting file: $e'); } } static Future?> get(String key) async { try { final file = await _getFilePath(key); if (file.existsSync()) { final contents = await file.readAsString(); return jsonDecode(contents) as Map; } else { return null; } } catch (e) { Log.warn('Error reading file: $e'); return null; } } static Future put(String key, Map value) async { try { final file = await _getFilePath(key); await file.parent.create(recursive: true); await file.writeAsString(jsonEncode(value)); } catch (e) { Log.error('Error writing file: $e'); } } }