createConfiguredDio static method

Dio createConfiguredDio({
  1. required String baseUrl,
  2. required Map<String, String> defaultHeaders,
  3. required LLMConfig config,
  4. Duration? defaultTimeout,
})

Create a configured Dio instance with unified HTTP settings

This method applies common HTTP configurations from LLMConfig extensions while allowing provider-specific customizations.

Implementation

static Dio createConfiguredDio({
  required String baseUrl,
  required Map<String, String> defaultHeaders,
  required LLMConfig config,
  Duration? defaultTimeout,
}) {
  // Start with base options
  final options = BaseOptions(
    baseUrl: baseUrl,
    connectTimeout: _getConnectionTimeout(config, defaultTimeout),
    receiveTimeout: _getReceiveTimeout(config, defaultTimeout),
    sendTimeout: _getSendTimeout(config, defaultTimeout),
    headers: _buildHeaders(defaultHeaders, config),
  );

  final dio = Dio(options);

  // Configure HTTP client adapter with proxy and SSL settings
  _configureHttpClientAdapter(dio, config);

  // Add logging interceptor if enabled
  _configureLogging(dio, config);

  return dio;
}