Handle empty urls in OptionalURLDecoder

Closes #553
This commit is contained in:
Shadowfacts 2024-12-16 19:10:23 -05:00
parent 26c483fc9a
commit 54376ac585
1 changed files with 8 additions and 4 deletions

View File

@ -63,10 +63,14 @@ public struct OptionalURLDecoder: Codable, Sendable, Hashable, ExpressibleByNilL
self.wrappedValue = nil
} else {
let s = try container.decode(String.self)
do {
self.wrappedValue = try parseStrategy.parse(s)
} catch {
throw DecodingError.dataCorrupted(.init(codingPath: container.codingPath, debugDescription: "Could not decode URL '\(s)'", underlyingError: error))
if s.isEmpty {
self.wrappedValue = nil
} else {
do {
self.wrappedValue = try parseStrategy.parse(s)
} catch {
throw DecodingError.dataCorrupted(.init(codingPath: container.codingPath, debugDescription: "Could not decode URL '\(s)'", underlyingError: error))
}
}
}
}