from static method

NetworkFailure? from(
  1. Object error,
  2. StackTrace? stackTrace
)

Factory that creates a NetworkFailure if the error matches, otherwise returns null

Implementation

static NetworkFailure? from(Object error, StackTrace? stackTrace) {
  final message = error.toString().toLowerCase();

  // More precise matching for network errors
  // We avoid generic words like "connection" unless paired with specific failure modes
  if (message.contains('socketexception') ||
      (message.contains('connection') &&
          (message.contains('refused') ||
              message.contains('reset') ||
              message.contains('closed') ||
              message.contains('timeout') ||
              message.contains('error'))) ||
      message.contains('network is unreachable') ||
      message.contains('no internet') ||
      message.contains('no address associated') ||
      message.contains('failed host lookup') ||
      message.contains('handshakeexception')) {
    return NetworkFailure(
      error.toString(),
      stackTrace: stackTrace,
      cause: error,
    );
  }
  return null;
}