1
1
/*
2
2
This source file is part of the Swift.org open source project
3
3
4
- Copyright (c) 2021 Apple Inc. and the Swift project authors
4
+ Copyright (c) 2021-2025 Apple Inc. and the Swift project authors
5
5
Licensed under Apache License v2.0 with Runtime Library Exception
6
6
7
7
See https://swift.org/LICENSE.txt for license information
11
11
import Foundation
12
12
import SymbolKit
13
13
14
+ #if canImport(os)
15
+ import os
16
+ private let logger = Logger ( subsystem: " org.swift.docc " , category: " ExternalReferenceResolverServiceClient " )
17
+ #else
18
+ private let logger = NoOpLoggerShim ( )
19
+ #endif
20
+
14
21
/// A client for performing link resolution requests to a documentation server.
15
22
class ExternalReferenceResolverServiceClient {
16
23
/// The maximum amount of time, in seconds, to await a response from the external reference resolver.
@@ -73,21 +80,36 @@ class ExternalReferenceResolverServiceClient {
73
80
}
74
81
75
82
guard resultGroup. wait ( timeout: . now( ) + . seconds( Self . responseTimeout) ) == . success else {
76
- logError ( . timeout )
83
+ logger . log ( " Timed out when resolving request. " )
77
84
throw Error . timeout
78
85
}
79
86
80
87
switch result {
81
88
case . success( let data? ) ? :
82
89
return data
83
90
case . success? :
84
- logError ( . missingPayload )
91
+ logger . log ( " Received nil payload when resolving request. " )
85
92
throw Error . missingPayload
86
93
case . failure( let error) :
87
- logError ( error)
94
+ switch error {
95
+ case . failedToEncodeRequest( let underlyingError) :
96
+ logger. log ( " Unable to encode request for request: \( underlyingError. localizedDescription) " )
97
+ case . invalidResponse( let underlyingError) :
98
+ logger. log ( " Received invalid response when resolving request: \( underlyingError. localizedDescription) " )
99
+ case . invalidResponseType( let receivedType) :
100
+ logger. log ( " Received unknown response type when resolving request: ' \( receivedType) ' " )
101
+ case . missingPayload:
102
+ logger. log ( " Received nil payload when resolving request. " )
103
+ case . timeout:
104
+ logger. log ( " Timed out when resolving request. " )
105
+ case . receivedErrorFromServer( let message) :
106
+ logger. log ( " Received error from server when resolving request: \( message) " )
107
+ case . unknownError:
108
+ logger. log ( " Unknown error when resolving request. " )
109
+ }
88
110
throw error
89
111
case nil :
90
- logError ( . unknownError )
112
+ logger . log ( " Unknown error when resolving request. " )
91
113
throw Error . unknownError
92
114
}
93
115
}
@@ -103,25 +125,6 @@ class ExternalReferenceResolverServiceClient {
103
125
. failure( . invalidResponseType( receivedType: message. type. rawValue) )
104
126
}
105
127
}
106
-
107
- private func logError( _ error: Error ) {
108
- switch error {
109
- case . failedToEncodeRequest( let underlyingError) :
110
- xlog ( " Unable to encode request for request: \( underlyingError. localizedDescription) " )
111
- case . invalidResponse( let underlyingError) :
112
- xlog ( " Received invalid response when resolving request: \( underlyingError. localizedDescription) " )
113
- case . invalidResponseType( let receivedType) :
114
- xlog ( " Received unknown response type when resolving request: ' \( receivedType) ' " )
115
- case . missingPayload:
116
- xlog ( " Received nil payload when resolving request. " )
117
- case . timeout:
118
- xlog ( " Timed out when resolving request. " )
119
- case . receivedErrorFromServer( let message) :
120
- xlog ( " Received error from server when resolving request: \( message) " )
121
- case . unknownError:
122
- xlog ( " Unknown error when resolving request. " )
123
- }
124
- }
125
128
126
129
enum Error : Swift . Error {
127
130
case failedToEncodeRequest( underlyingError: Swift . Error )
0 commit comments