ssap_app/node_modules/expo/ios/Fetch/NativeRequest.swift

39 lines
1000 B
Swift

// Copyright 2015-present 650 Industries. All rights reserved.
import ExpoModulesCore
/**
A SharedObject for request.
*/
internal final class NativeRequest: SharedObject, @unchecked Sendable {
internal let response: NativeResponse
internal let task: ExpoURLSessionTask
init(response: NativeResponse) {
self.response = response
self.task = ExpoURLSessionTask(delegate: self.response)
}
func start(
urlSession: URLSession,
urlSessionDelegate: URLSessionSessionDelegateProxy,
url: URL,
requestInit: NativeRequestInit,
requestBody: Data?
) {
self.response.redirectMode = requestInit.redirect
self.task.start(
urlSession: urlSession,
urlSessionDelegate: urlSessionDelegate,
url: url,
requestInit: requestInit,
requestBody: requestBody
)
}
func cancel(urlSessionDelegate: URLSessionSessionDelegateProxy) {
self.task.cancel(urlSessionDelegate: urlSessionDelegate)
self.response.emitRequestCanceled()
}
}