Initial commit
This commit is contained in:
commit
55229d9473
5 changed files with 68 additions and 0 deletions
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
.DS_Store
|
||||||
|
/.build
|
||||||
|
/Packages
|
||||||
|
/*.xcodeproj
|
||||||
|
xcuserdata/
|
||||||
|
DerivedData/
|
||||||
|
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
|
20
Package.swift
Normal file
20
Package.swift
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// swift-tools-version:5.5
|
||||||
|
// The swift-tools-version declares the minimum version of Swift required to build this package.
|
||||||
|
|
||||||
|
import PackageDescription
|
||||||
|
|
||||||
|
let package = Package(
|
||||||
|
name: "AsyncBackports",
|
||||||
|
platforms: [
|
||||||
|
.macOS(.v12),
|
||||||
|
.iOS(.v15),
|
||||||
|
.watchOS(.v8),
|
||||||
|
.tvOS(.v15),
|
||||||
|
],
|
||||||
|
products: [
|
||||||
|
.library(name: "AsyncBackports", targets: ["AsyncBackports"]),
|
||||||
|
],
|
||||||
|
targets: [
|
||||||
|
.target(name: "AsyncBackports", dependencies: []),
|
||||||
|
]
|
||||||
|
)
|
3
README.md
Normal file
3
README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# AsyncBackports
|
||||||
|
|
||||||
|
A description of this package.
|
4
Sources/AsyncBackports/Backport.swift
Normal file
4
Sources/AsyncBackports/Backport.swift
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
public struct Backport<Original> {
|
||||||
|
let original: Original
|
||||||
|
}
|
||||||
|
|
34
Sources/AsyncBackports/URLSession+Backport.swift
Normal file
34
Sources/AsyncBackports/URLSession+Backport.swift
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
public extension URLSession {
|
||||||
|
var backport: Backport<URLSession> { .init(original: self) }
|
||||||
|
}
|
||||||
|
|
||||||
|
public extension Backport where Original: URLSession {
|
||||||
|
|
||||||
|
/// Convenience method to load data using an URLRequest, creates and resumes an URLSessionDataTask internally.
|
||||||
|
///
|
||||||
|
/// - Parameter request: The URLRequest for which to load data.
|
||||||
|
/// - Parameter delegate: Task-specific delegate.
|
||||||
|
/// - Returns: Data and response.
|
||||||
|
@available(macOS, deprecated: 12.0, message: "No need for .backport any more")
|
||||||
|
@available(iOS, deprecated: 15.0, message: "No need for .backport any more")
|
||||||
|
@available(tvOS, deprecated: 15.0, message: "No need for .backport any more")
|
||||||
|
@available(watchOS, deprecated: 8.0, message: "No need for .backport any more")
|
||||||
|
func data(for request: URLRequest, delegate: URLSessionTaskDelegate? = nil) async throws -> (Data, URLResponse) {
|
||||||
|
return try await original.data(for: request, delegate: delegate)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Convenience method to load data using an URL, creates and resumes an URLSessionDataTask internally.
|
||||||
|
///
|
||||||
|
/// - Parameter url: The URL for which to load data.
|
||||||
|
/// - Parameter delegate: Task-specific delegate.
|
||||||
|
/// - Returns: Data and response.
|
||||||
|
@available(macOS, deprecated: 12.0, message: "No need for .backport any more")
|
||||||
|
@available(iOS, deprecated: 15.0, message: "No need for .backport any more")
|
||||||
|
@available(tvOS, deprecated: 15.0, message: "No need for .backport any more")
|
||||||
|
@available(watchOS, deprecated: 8.0, message: "No need for .backport any more")
|
||||||
|
func data(from url: URL, delegate: URLSessionTaskDelegate? = nil) async throws -> (Data, URLResponse) {
|
||||||
|
return try await original.data(from: url, delegate: delegate)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue