remove await

This commit is contained in:
煒峻林 2019-07-04 17:34:45 +08:00
parent b3f1be4129
commit 8a07a7a4c8
8 changed files with 71 additions and 82 deletions

View File

@ -1,7 +1,3 @@
github "Alamofire/Alamofire" ~> 4.8.1
github "yume190/JSONDecodeKit" ~> 4.1.0
#github "mxcl/PromiseKit" ~> 6.5.2
#github "yannickl/AwaitKit" ~> 5.1.0
github "ReactiveX/RxSwift" ~> 4.0
github "Alamofire/Alamofire"
github "yume190/JSONDecodeKit"
github "ReactiveX/RxSwift"

View File

@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.0.2</string>
<string>5.0.3</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>

View File

@ -14,10 +14,10 @@ public enum Fake {
case request((_ request: URLRequest) -> (URLResponse, Data))
func get(request: URLRequest) -> (response: URLResponse, data: Data)? {
guard let url = request.url else { return nil }
guard let url: URL = request.url else { return nil }
switch self {
case let .data(data, code, header):
guard let res = HTTPURLResponse(
guard let res: HTTPURLResponse = HTTPURLResponse(
url: url,
statusCode: code,
httpVersion: kCFHTTPVersion1_1 as String,
@ -25,8 +25,8 @@ public enum Fake {
) else { return nil }
return (res, data)
case let .json(json, code, header):
guard let data = try? json.encode() else { return nil }
guard let res = HTTPURLResponse(
guard let data: Data = try? json.encode() else { return nil }
guard let res: HTTPURLResponse = HTTPURLResponse(
url: url,
statusCode: code,
httpVersion: kCFHTTPVersion1_1 as String,

View File

@ -27,9 +27,9 @@ public class JSONMock: URLProtocol {
}
var urlPath: String? {
guard let url = request.url else { return nil }
guard let scheme = url.scheme else { return nil }
guard let host = url.host else { return nil }
guard let url: URL = request.url else { return nil }
guard let scheme: String = url.scheme else { return nil }
guard let host: String = url.host else { return nil }
let port: String
if let portString = url.port.map(String.init) {
port = ":" + portString
@ -41,8 +41,8 @@ public class JSONMock: URLProtocol {
}
var fake: Fake? {
guard let urlPath = urlPath else { return nil }
guard let fake = JSONMock.fakes[urlPath] else { return nil }
guard let urlPath: String = urlPath else { return nil }
guard let fake: Fake = JSONMock.fakes[urlPath] else { return nil }
return fake
}

View File

@ -1,50 +1,50 @@
import Foundation
import struct RxSwift.Disposables
import class RxSwift.Observable
import protocol RxSwift.Disposable
import Alamofire
extension Entryable {
public var rxData: Observable<Response<Data>> {
return Observable.create { observer -> Disposable in
self.dataRequest
.validate()
.responseData { (res) in
switch res.result {
case .success:
guard let data = res.data else {
observer.onError(res.error ?? NetError.unknown)
return
}
let result = Response<Data>(
data: data,
request: res.request!,
response: res.response!
)
observer.onNext(result)
case .failure(let error):
observer.onError(error)
}
}
return Disposables.create {
self.dataRequest.cancel()
}
}
}
}
extension Entryable where ResponseType: Codable {
public var rx: Observable<Response<ResponseType>> {
return rxData.map { (response) throws -> Response<ResponseType> in
let data = try ResponseType.decode(data: response.data)
return Response<ResponseType>(
data: data,
request: response.request,
response: response.response
)
}
}
}
////import Foundation
//import struct RxSwift.Disposables
//import class RxSwift.Observable
//import protocol RxSwift.Disposable
//import Alamofire
//
//extension Entryable {
// public var rxData: Observable<Response<Data>> {
// return Observable.create { observer -> Disposable in
// self.dataRequest
// .validate()
// .responseData { (res) in
//
// switch res.result {
// case .success:
// guard let data = res.data else {
// observer.onError(res.error ?? NetError.unknown)
// return
// }
//
// let result = Response<Data>(
// data: data,
// request: res.request!,
// response: res.response!
// )
// observer.onNext(result)
// case .failure(let error):
// observer.onError(error)
// }
// }
//
// return Disposables.create {
// self.dataRequest.cancel()
// }
// }
// }
//}
//
//extension Entryable where ResponseType: Codable {
// public var rx: Observable<Response<ResponseType>> {
// return rxData.map { (response) throws -> Response<ResponseType> in
// let data = try ResponseType.decode(data: response.data)
// return Response<ResponseType>(
// data: data,
// request: response.request,
// response: response.response
// )
// }
// }
//}

View File

@ -11,7 +11,9 @@ import struct JSONDecodeKit.JSON
import struct Alamofire.DefaultDataResponse
internal func guardData(res: DefaultDataResponse) -> (response: HTTPURLResponse, data: Data)? {
guard let response = res.response, let data = res.data else {
guard
let response: HTTPURLResponse = res.response,
let data: Data = res.data else {
print("API (\(res.request?.url?.absoluteString ?? "")): No Response.")
return nil
}
@ -25,14 +27,14 @@ extension YumeAlamofire {
public typealias DebugInfoFunction = (_ data: Data?) -> Swift.Void
public static func emptyDebugInfo(data: Data?) {}
public static func basicDebugInfo(data: Data?) {
guard let data = data else { return }
guard let data: Data = data else { return }
print("The error response : \(String.init(data: data, encoding: .utf8) ?? "")")
}
}
extension YumeAlamofire {
internal static func parseErrorHandle<OutputType>(type: OutputType.Type, url: URL?, error: Error) {
let parseError = [
let parseError: String = [
"API Data Parse Error.",
"Type : \(OutputType.self)",
"Url : \(url?.path ?? "")"

View File

@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'YumeAlamofire'
s.version = '5.0.2'
s.version = '5.0.3'
s.license = 'MIT'
s.summary = "A Library combine network request and json decode in POP way"
s.homepage = 'https://github.com/yume190/YumeAlamofire'
@ -36,16 +36,7 @@ Pod::Spec.new do |s|
'Sources/Rx/*.swift',
]
ss.dependency 'RxSwift', '~> 4.4.0'
ss.dependency "YumeAlamofire/Core"
end
s.subspec "Await" do |ss|
ss.source_files = [
'Sources/Await/*.swift'
]
ss.dependency 'AwaitKit', '~> 5.0.1'
ss.dependency 'RxSwift'
ss.dependency "YumeAlamofire/Core"
end

View File

@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.0.2</string>
<string>5.0.3</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key>