diff options
author | bptato <nincsnevem662@gmail.com> | 2023-06-19 20:56:06 +0200 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2023-06-19 20:56:06 +0200 |
commit | b3e08ac443d5d010938be7ae9b9bf8c04ca55300 (patch) | |
tree | d6c4ed711fa6553a95ae7b1b2e77d1d5d4926bd2 /src/html | |
parent | 82fb1f70ab275884c42dd769b2af8f9df5389e88 (diff) | |
download | chawan-b3e08ac443d5d010938be7ae9b9bf8c04ca55300.tar.gz |
Reject fetch promise on network error
Instead of setting the non-standard res variable.
Diffstat (limited to 'src/html')
-rw-r--r-- | src/html/dom.nim | 7 | ||||
-rw-r--r-- | src/html/env.nim | 2 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/html/dom.nim b/src/html/dom.nim index 1fa3b043..3bf67b05 100644 --- a/src/html/dom.nim +++ b/src/html/dom.nim @@ -2396,14 +2396,13 @@ proc fetchClassicScript(element: HTMLScriptElement, url: URL, let loader = element.document.window.loader if loader.isSome: let request = createPotentialCORSRequest(url, RequestDestination.SCRIPT, cors) - loader.get.fetch(request).then(proc(r: Response): auto = - if r.res != 0 or r.body == nil: - #TODO remove res + loader.get.fetch(request).then(proc(r: Result[Response, JSError]): auto = + if r.isErr or r.get.body == nil: element.onComplete(ScriptResult(t: RESULT_NULL)) else: #TODO use charset from content-type #TODO text() should decode - return r.text() + return r.get.text() ).then(proc(s: string) = let ss = newStringStream(s) #TODO unnecessary copy let cs = if cs == CHARSET_UNKNOWN: CHARSET_UTF_8 else: cs diff --git a/src/html/env.nim b/src/html/env.nim index a70508be..eba067a8 100644 --- a/src/html/env.nim +++ b/src/html/env.nim @@ -61,7 +61,7 @@ proc addNavigatorModule(ctx: JSContext) = ctx.registerType(PluginArray) ctx.registerType(MimeTypeArray) -proc fetch(window: Window, req: Request): Promise[Response] {.jsfunc.} = +proc fetch(window: Window, req: Request): FetchPromise {.jsfunc.} = if window.loader.isSome: return window.loader.get.fetch(req) |