swift/Sources/TeaUtils/Utils.swift (51 lines of code) (raw):

import Foundation func isBool(_ val: Any?) -> Bool { if val == nil { return false } if val is Bool { return true } return false } func osName() -> String { let osNameVersion: String = { let version = ProcessInfo.processInfo.operatingSystemVersion let versionString = "\(version.majorVersion).\(version.minorVersion).\(version.patchVersion)" let osName: String = { #if os(iOS) return "iOS" #elseif os(watchOS) return "watchOS" #elseif os(tvOS) return "tvOS" #elseif os(macOS) return "OSX" #elseif os(Linux) return "Linux" #else return "Unknown" #endif }() return "\(osName)/\(versionString)" }() return osNameVersion } func version() -> String { let package: String = { guard let afInfo = Bundle(for: Client.self).infoDictionary, let build = afInfo["CFBundleShortVersionString"], let name = afInfo["CFBundleName"] else { return "Unknown" } return "\(name)/\(build)" }() return package } func getDefaultUserAgent() -> String { var defaultUserAgent: String = "AlibabaCloud" defaultUserAgent += " " + osName() + " Swift" + " Core/" + version() + " TeaDSL/1" return defaultUserAgent }