diff --git a/Example/Usage.swift b/Example/Usage.swift new file mode 100644 index 0000000..6f28c52 --- /dev/null +++ b/Example/Usage.swift @@ -0,0 +1,17 @@ +// +// File.swift +// SwiftNetworkKit +// +// Created by Stephen T. Sagarino Jr. on 10/2/25. +// + +import Foundation + +struct Usage { + + let session = + SNKSession(urlSession: .shared) + .request(url: "https://vueuse.org/core/useFetch/") + .method(.get) + +} diff --git a/Sources/SwiftNetworkKit/Core/HTTPMethod.swift b/Sources/SwiftNetworkKit/Core/HTTPMethod.swift new file mode 100644 index 0000000..428afc1 --- /dev/null +++ b/Sources/SwiftNetworkKit/Core/HTTPMethod.swift @@ -0,0 +1,19 @@ +// +// File.swift +// SwiftNetworkKit +// +// Created by Stephen T. Sagarino Jr. on 10/2/25. +// + +import Foundation + +public enum HTTPMethod: String { + case get = "GET" + case post = "POST" + case put = "PUT" + case delete = "DELETE" + case patch = "PATCH" + case head = "HEAD" + case options = "OPTIONS" + case trace = "TRACE" +} diff --git a/Sources/SwiftNetworkKit/Core/SNKDataRequest.swift b/Sources/SwiftNetworkKit/Core/SNKDataRequest.swift new file mode 100644 index 0000000..b7c52e3 --- /dev/null +++ b/Sources/SwiftNetworkKit/Core/SNKDataRequest.swift @@ -0,0 +1,32 @@ +// +// File 2.swift +// SwiftNetworkKit +// +// Created by Stephen T. Sagarino Jr. on 10/2/25. +// + +import Combine +import Foundation + +open class SNKDataRequest: @unchecked Sendable { + + open private(set) var method: HTTPMethod = .get + open private(set) var coder: JSONDecoder = JSONDecoder() + // open private(set) var decoder: JSONDecoder = .get + // + // open func method(_ method: HTTPMethod) -> SNKDataRequest { + // self.method = method + // return self + // } + + open func method(_ method: HTTPMethod) -> SNKDataRequest { + self.method = method + return self + } + + open func coder(_ method: HTTPMethod) -> SNKDataRequest { + self.method = method + return self + } + +} diff --git a/Sources/SwiftNetworkKit/Core/SNKSession.swift b/Sources/SwiftNetworkKit/Core/SNKSession.swift new file mode 100644 index 0000000..bee30e4 --- /dev/null +++ b/Sources/SwiftNetworkKit/Core/SNKSession.swift @@ -0,0 +1,24 @@ +// +// File.swift +// SwiftNetworkKit +// +// Created by Stephen T. Sagarino Jr. on 10/2/25. +// + +import Foundation + +open class SNKSession: @unchecked Sendable { + + let urlSession: URLSession + + init( + urlSession: URLSession + ) { + self.urlSession = urlSession + } + + open func request(url: String) -> SNKDataRequest { + .init() + } + +}