Skip to content

Commit

Permalink
refactor: adjust logic and syntax avoid force unwrap
Browse files Browse the repository at this point in the history
  • Loading branch information
ACTCD committed Sep 21, 2024
1 parent c0aae8f commit 8fa365d
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions xcode/Shared/UrlPolyfill.swift
Original file line number Diff line number Diff line change
Expand Up @@ -52,20 +52,18 @@ func jsLikeURL(_ urlString: String, baseString: String? = nil) -> [String: Strin
guard let scheme = url.scheme else {
return nil
}
var port = ""
if let portInt = url.port { port = String(portInt) }
if (scheme == "http" && port == "80") { port = "" }
if (scheme == "https" && port == "443") { port = "" }
/*
The issue still exists as of macOS 14.4, iOS 17.0
https://stackoverflow.com/questions/74445926/url-host-deprecated-but-replacement-crashes
https://forums.swift.org/t/does-url-query-percentencoded-calls-url-host-percentencoded-under-the-hood/70452
https://forums.developer.apple.com/forums/thread/722451
*/
guard let hostname = url.host else {
return nil
}
var port = (url.port == nil) ? "" : String(url.port!)
if (scheme == "http" && port == "80") { port = "" }
if (scheme == "https" && port == "443") { port = "" }
if #available(macOS 15.0, iOS 18.0, *) {
// let hostname = url.host(percentEncoded: true) ?? ""
guard let hostname = url.host(percentEncoded: true) else { return nil }
let host = (port == "") ? hostname : "\(hostname):\(port)"
let query = url.query(percentEncoded: true) ?? ""
let fragment = url.fragment(percentEncoded: true) ?? ""
Expand All @@ -83,6 +81,7 @@ func jsLikeURL(_ urlString: String, baseString: String? = nil) -> [String: Strin
"username": url.user(percentEncoded: true) ?? ""
]
} else {
guard let hostname = url.host else { return nil }
let host = (port == "") ? hostname : "\(hostname):\(port)"
let query = url.query ?? ""
let fragment = url.fragment ?? ""
Expand Down

0 comments on commit 8fa365d

Please sign in to comment.