Skip to content

Commit 2bd37b5

Browse files
committed
added headers support i think
1 parent c1e296c commit 2bd37b5

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

Sora/Utils/JSLoader/JSController.swift

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,19 @@ class JSController: ObservableObject {
2121
}
2222
context.setObject(logFunction, forKeyedSubscript: "log" as NSString)
2323

24-
let fetchNativeFunction: @convention(block) (String, JSValue, JSValue) -> Void = { urlString, resolve, reject in
24+
let fetchNativeFunction: @convention(block) (String, [String: String]?, JSValue, JSValue) -> Void = { urlString, headers, resolve, reject in
2525
guard let url = URL(string: urlString) else {
2626
Logger.shared.log("Invalid URL",type: "Error")
2727
reject.call(withArguments: ["Invalid URL"])
2828
return
2929
}
30-
let task = URLSession.custom.dataTask(with: url) { data, _, error in
30+
var request = URLRequest(url: url)
31+
if let headers = headers {
32+
for (key, value) in headers {
33+
request.setValue(value, forHTTPHeaderField: key)
34+
}
35+
}
36+
let task = URLSession.custom.dataTask(with: request) { data, _, error in
3137
if let error = error {
3238
Logger.shared.log("Network error in fetchNativeFunction: \(error.localizedDescription)",type: "Error")
3339
reject.call(withArguments: [error.localizedDescription])
@@ -50,12 +56,12 @@ class JSController: ObservableObject {
5056
context.setObject(fetchNativeFunction, forKeyedSubscript: "fetchNative" as NSString)
5157

5258
let fetchDefinition = """
53-
function fetch(url) {
54-
return new Promise(function(resolve, reject) {
55-
fetchNative(url, resolve, reject);
56-
});
57-
}
58-
"""
59+
function fetch(url, headers) {
60+
return new Promise(function(resolve, reject) {
61+
fetchNative(url, headers, resolve, reject);
62+
});
63+
}
64+
"""
5965
context.evaluateScript(fetchDefinition)
6066
}
6167

0 commit comments

Comments
 (0)