import 'token_storage.dart';

/// 현재 플랫폼에서 지원되는 토큰 스토리지가 없을 때 사용하는 기본 구현을 생성한다.
TokenStorage buildTokenStorage() => _UnsupportedTokenStorage();

/// 토큰 저장 기능이 제공되지 않는 환경에서 호출될 때 예외를 던지는 스텁.
class _UnsupportedTokenStorage implements TokenStorage {
  Never _unsupported() {
    throw UnsupportedError('TokenStorage is not supported on this platform.');
  }

  @override
  Future<void> clear() async => _unsupported();

  @override
  Future<String?> readAccessToken() async => _unsupported();

  @override
  Future<String?> readRefreshToken() async => _unsupported();

  @override
  Future<void> writeAccessToken(String? token) async => _unsupported();

  @override
  Future<void> writeRefreshToken(String? token) async => _unsupported();
}
