This repository has been archived by the owner on Oct 29, 2021. It is now read-only.
/
Net.swift
62 lines (38 loc) · 1.64 KB
/
Net.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//
// Net.swift
// Net
//
// Created by Alex Rupérez on 22/3/17.
//
//
import Foundation
public typealias InterceptorToken = UUID
public typealias StatusCode = Int
public typealias StatusCodes = Set<StatusCode>
public typealias RequestInterceptor = (NetRequest.Builder) -> NetRequest.Builder
public typealias ResponseInterceptor = (NetResponse.Builder) -> NetResponse.Builder
public protocol Net: class {
static var shared: Net { get }
var retryClosure: NetTask.RetryClosure? { get set }
@discardableResult func addRequestInterceptor(_ interceptor: @escaping RequestInterceptor) -> InterceptorToken
@discardableResult func addResponseInterceptor(_ interceptor: @escaping ResponseInterceptor) -> InterceptorToken
@discardableResult func removeInterceptor(_ token: InterceptorToken) -> Bool
var acceptableStatusCodes: StatusCodes { get set }
func data(_ request: NetRequest) -> NetTask
func download(_ resumeData: Data) -> NetTask
func download(_ request: NetRequest) -> NetTask
func upload(_ streamedRequest: NetRequest) -> NetTask
func upload(_ request: NetRequest, data: Data) -> NetTask
func upload(_ request: NetRequest, fileURL: URL) -> NetTask
#if !os(watchOS)
@available(iOS 9.0, macOS 10.11, *)
func stream(_ netService: NetService) -> NetTask
@available(iOS 9.0, macOS 10.11, *)
func stream(_ domain: String, type: String, name: String, port: Int32?) -> NetTask
@available(iOS 9.0, macOS 10.11, *)
func stream(_ hostName: String, port: Int) -> NetTask
#endif
}
extension Net {
static var defaultAcceptableStatusCodes: StatusCodes { return Set(200..<300) }
}