From 37849df862ca8b835458a4a7e2564fab853f32f5 Mon Sep 17 00:00:00 2001 From: andrewelliott <> Date: Mon, 12 Jun 2023 18:36:43 -0500 Subject: [PATCH 1/4] Reduce deployment targets by 3 versions --- Package.swift | 2 +- .../Conversion/Converter+Client.swift | 20 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Package.swift b/Package.swift index f06db024..b3f2b4ab 100644 --- a/Package.swift +++ b/Package.swift @@ -17,7 +17,7 @@ import PackageDescription let package = Package( name: "swift-openapi-runtime", platforms: [ - .macOS(.v13), .iOS(.v16), .tvOS(.v16), .watchOS(.v9), + .macOS(.v10_15), .iOS(.v12), .tvOS(.v13), .watchOS(.v6), ], products: [ .library( diff --git a/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift b/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift index 561febc2..292363f4 100644 --- a/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift +++ b/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift @@ -22,11 +22,21 @@ extension Converter { ) throws -> String { var renderedString = template for parameter in parameters { - renderedString.replace( - "{}", - with: parameter.description, - maxReplacements: 1 - ) + if #available(iOS 16.0, macOS 13.0, *) { + renderedString.replace( + "{}", + with: parameter.description, + maxReplacements: 1 + ) + } else { + if let range = renderedString.range(of: "{}") { + renderedString = renderedString.replacingOccurrences( + of: "{}", + with: parameter.description, + range: range + ) + } + } } return renderedString } From 2af23b40ed6c8152a81838aa1b45719cab2b211a Mon Sep 17 00:00:00 2001 From: andrewelliott <> Date: Tue, 13 Jun 2023 00:48:15 -0500 Subject: [PATCH 2/4] Address PR feedback --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index b3f2b4ab..0d2d2ea6 100644 --- a/Package.swift +++ b/Package.swift @@ -17,7 +17,7 @@ import PackageDescription let package = Package( name: "swift-openapi-runtime", platforms: [ - .macOS(.v10_15), .iOS(.v12), .tvOS(.v13), .watchOS(.v6), + .macOS(.v10_15), .iOS(.v13), .tvOS(.v13), .watchOS(.v6), ], products: [ .library( From afe90824a904fb5f54dcec8554394f0ee28881f7 Mon Sep 17 00:00:00 2001 From: andrewelliott <> Date: Tue, 13 Jun 2023 02:40:05 -0500 Subject: [PATCH 3/4] Address PR feedback --- Sources/OpenAPIRuntime/Conversion/Converter+Client.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift b/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift index 292363f4..48de9920 100644 --- a/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift +++ b/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift @@ -22,7 +22,7 @@ extension Converter { ) throws -> String { var renderedString = template for parameter in parameters { - if #available(iOS 16.0, macOS 13.0, *) { + if #available(macOS 13, iOS 16.0, tvOS 16, watchOS 9, *) { renderedString.replace( "{}", with: parameter.description, From 74366db1f780604b13f01201b13c2fa37b6f3142 Mon Sep 17 00:00:00 2001 From: Andrew Elliott <26266444+andrewse02@users.noreply.github.com> Date: Tue, 13 Jun 2023 03:13:16 -0500 Subject: [PATCH 4/4] Update Sources/OpenAPIRuntime/Conversion/Converter+Client.swift Co-authored-by: Honza Dvorsky --- .../Conversion/Converter+Client.swift | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift b/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift index 48de9920..300b0cb0 100644 --- a/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift +++ b/Sources/OpenAPIRuntime/Conversion/Converter+Client.swift @@ -22,20 +22,12 @@ extension Converter { ) throws -> String { var renderedString = template for parameter in parameters { - if #available(macOS 13, iOS 16.0, tvOS 16, watchOS 9, *) { - renderedString.replace( - "{}", + if let range = renderedString.range(of: "{}") { + renderedString = renderedString.replacingOccurrences( + of: "{}", with: parameter.description, - maxReplacements: 1 + range: range ) - } else { - if let range = renderedString.range(of: "{}") { - renderedString = renderedString.replacingOccurrences( - of: "{}", - with: parameter.description, - range: range - ) - } } } return renderedString