Skip to content

Commit 6930d5a

Browse files
authored
fix: adding more info to user-agent header (#5)
1 parent 4592179 commit 6930d5a

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

Sources/AWSAppSyncApolloExtensions/Utilities/PackageInfo.swift

+8-5
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88

99
import Foundation
10+
import Apollo
1011
#if canImport(WatchKit)
1112
import WatchKit
1213
#elseif canImport(UIKit)
@@ -31,8 +32,9 @@ class PackageInfo {
3132
let device = UIDevice.current
3233
return (name: device.systemName, version: device.systemVersion)
3334
#else
35+
let osVersion = ProcessInfo.processInfo.operatingSystemVersion
3436
return (name: "macOS",
35-
version: ProcessInfo.processInfo.operatingSystemVersionString)
37+
version: "\(osVersion.majorVersion).\(osVersion.minorVersion).\(osVersion.patchVersion)")
3638
#endif
3739
}()
3840

@@ -53,11 +55,12 @@ class PackageInfo {
5355
static var userAgent: String {
5456
get async {
5557
let (name, version) = await Self.os
56-
let compilerInfo = "lang/swift/\(swiftVersion)"
57-
let osInfo = "os/\(name)/\(version)"
58-
let libInfo = "lib/aws-appsync-apollo-extensions-swift/\(Self.version)"
58+
let compilerInfo = "lang/swift#\(swiftVersion)"
59+
let osInfo = "os/\(name)#\(version)"
60+
let libInfo = "lib/aws-appsync-apollo-extensions-swift#\(Self.version)"
61+
let dependenciesInfo = "md/apollo#\(Constants.ApolloVersion)"
5962

60-
return "UA/2.0 \(compilerInfo) \(osInfo) \(libInfo)"
63+
return "UA/2.0 \(compilerInfo) \(osInfo) \(libInfo) \(dependenciesInfo)"
6164
}
6265
}
6366

Tests/AWSAppSyncApolloExtensionsTests/Utilities/PackageInfoTests.swift

+4-3
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ class PackageInfoTests: XCTestCase {
1717
func testUserAgentHasCorrectFormat() async throws {
1818
let format = try Regex(
1919
"^UA/2\\.0 " +
20-
"lang/swift/\\d+\\.\\d+(?:\\.\\d+)? " +
21-
"os/iOS|macOS|watchOS/\\d+\\.\\d+(?:\\.\\d+)? " +
22-
"lib/aws-appsync-apollo-extensions-swift/\\d+\\.\\d+\\.\\d+$"
20+
"lang/swift#\\d+\\.\\d+(?:\\.\\d+)? " +
21+
"os/(?:iOS|macOS|watchOS)#\\d+\\.\\d+(?:\\.\\d+)? " +
22+
"lib/aws-appsync-apollo-extensions-swift#\\d+\\.\\d+\\.\\d+ " +
23+
"md/apollo#\\d+\\.\\d+\\.\\d+$"
2324
)
2425
let userAgent = await PackageInfo.userAgent
2526
let matches = userAgent.ranges(of: format)

0 commit comments

Comments
 (0)