Skip to content

Commit 15c90e0

Browse files
committed
Add diagnosticsEngine parameter to RegistryManager
1 parent 27c24ec commit 15c90e0

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

Sources/PackageRegistry/RegistryManager.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,26 @@ public final class RegistryManager {
3333
return ZipArchiver(fileSystem: fileSystem)
3434
}
3535

36-
internal static var clientFactory: () -> HTTPClientProtocol = {
36+
internal static var clientFactory: (DiagnosticsEngine?) -> HTTPClientProtocol = { diagnosticEngine in
3737
var configuration = HTTPClientConfiguration()
3838
configuration.followRedirects = false
3939

40-
return HTTPClient(configuration: configuration, handler: nil, diagnosticsEngine: nil)
40+
return HTTPClient(configuration: configuration, handler: nil, diagnosticsEngine: diagnosticEngine)
4141
}
4242

4343
private static var cache = ThreadSafeKeyValueStore<URL, RegistryManager>()
4444

4545
private let registryBaseURL: Foundation.URL
4646
private let client: HTTPClientProtocol
4747

48-
init(registryBaseURL: Foundation.URL) {
48+
init(registryBaseURL: Foundation.URL, diagnosticEngine: DiagnosticsEngine? = nil) {
4949
self.registryBaseURL = registryBaseURL
50-
client = Self.clientFactory()
50+
self.client = Self.clientFactory(diagnosticEngine)
5151
}
5252

5353
public class func discover(
5454
for package: PackageReference,
55+
diagnosticsEngine: DiagnosticsEngine? = nil,
5556
on queue: DispatchQueue,
5657
completion: @escaping (Result<RegistryManager, Error>) -> Void
5758
) {
@@ -71,15 +72,15 @@ public final class RegistryManager {
7172
]
7273
)
7374

74-
let client = clientFactory()
75+
let client = clientFactory(diagnosticsEngine)
7576

7677
let response = try tsc_await { client.execute(request, callback: $0) }
7778
if response.statusCode == 303,
7879
response.headers.get("Content-Version").first == "1",
7980
let location = response.headers.get("Location").first,
8081
let redirectedURL = URL(string: location, relativeTo: url)
8182
{
82-
return RegistryManager(registryBaseURL: redirectedURL)
83+
return RegistryManager(registryBaseURL: redirectedURL, diagnosticEngine: diagnosticsEngine)
8384
} else {
8485
throw RegistryError.invalidResponse
8586
}
@@ -199,7 +200,6 @@ public final class RegistryManager {
199200
]
200201
)
201202

202-
let client = Self.clientFactory()
203203
client.execute(request) { result in
204204
switch result {
205205
case .success(let response):

Tests/PackageRegistryTests/RegistryManagerTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ final class RegistryManagerTests: XCTestCase {
3333
return MockArchiver()
3434
}
3535

36-
RegistryManager.clientFactory = {
36+
RegistryManager.clientFactory = { _ in
3737
let configuration = URLSessionConfiguration.default
3838
configuration.protocolClasses = [MockPackageRegistryURLProtocol.self] + (configuration.protocolClasses ?? [])
3939
return URLSessionHTTPClient(configuration: configuration)

0 commit comments

Comments
 (0)