set static method

void set(
  1. String key,
  2. dynamic value, {
  3. Duration? expireTime,
  4. (String, String)? encryptKeyIv,
})

Implementation

static void set(String key, dynamic value, {Duration? expireTime, (String, String)? encryptKeyIv}) {
  if (value is String) {
    _sp.setString(
      key,
      encryptKeyIv == null
          ? value
          : UEncryption.aesEncrypt(
              plainText: value,
              key: encryptKeyIv.$1,
              iv: encryptKeyIv.$2,
            ),
    );
  } else if (value is bool) {
    _sp.setBool(key, value);
  } else if (value is double) {
    _sp.setDouble(key, value);
  } else if (value is int) {
    _sp.setInt(key, value);
  } else if (value is List<String>) {
    _sp.setStringList(key, value);
  } else {
    throw ArgumentError("Unsupported value type for key: $key");
  }

  if (expireTime != null) {
    _sp.setInt("_expiry_$key", DateTime.now().add(expireTime).millisecondsSinceEpoch);
  }
}