MCPcopy Index your code
hub / github.com/bigskysoftware/_hyperscript / resolve

Method resolve

tools/common/_hyperscript.iife.js:5837–5889  ·  view source on GitHub ↗
(context, { url, options })

Source from the content-addressed store, hash-verified

5835 return new _FetchCommand(url, argExprs, type, conversion, dontThrow);
5836 }
5837 resolve(context, { url, options }) {
5838 var detail = options || {};
5839 detail.sender = context.me;
5840 detail.headers = detail.headers || {};
5841 var abortController = new AbortController();
5842 var abortListener = () => abortController.abort();
5843 context.me.addEventListener("fetch:abort", abortListener, { once: true });
5844 detail.signal = abortController.signal;
5845 context.meta.runtime.triggerEvent(context.me, "hyperscript:beforeFetch", detail);
5846 context.meta.runtime.triggerEvent(context.me, "fetch:beforeRequest", detail);
5847 var finished = false;
5848 if (detail.timeout) {
5849 setTimeout(() => {
5850 if (!finished) abortController.abort();
5851 }, detail.timeout);
5852 }
5853 var complete = (result) => {
5854 context.result = result;
5855 context.meta.runtime.triggerEvent(context.me, "fetch:afterRequest", { result });
5856 finished = true;
5857 return this.findNext(context);
5858 };
5859 var checkThrow = !this.dontThrow && this.conversionType !== "response";
5860 return fetch(url, detail).then((resp) => {
5861 var resultDetails = { response: resp };
5862 context.meta.runtime.triggerEvent(context.me, "fetch:afterResponse", resultDetails);
5863 resp = resultDetails.response;
5864 if (checkThrow) {
5865 var statusStr = String(resp.status);
5866 var patterns = config.fetchThrowsOn || [];
5867 for (var i = 0; i < patterns.length; i++) {
5868 if (patterns[i].test(statusStr)) {
5869 var err = new Error("fetch failed: " + resp.status + " " + resp.statusText + " (" + url + ")");
5870 err.response = resp;
5871 err.status = resp.status;
5872 throw err;
5873 }
5874 }
5875 }
5876 if (this.conversionType === "response") return complete(resp);
5877 if (this.conversionType === "json") return resp.json().then(complete);
5878 return resp.text().then((result) => {
5879 if (this.conversion) result = context.meta.runtime.convertValue(result, this.conversion);
5880 if (this.conversionType === "html") result = context.meta.runtime.convertValue(result, "Fragment");
5881 return complete(result);
5882 });
5883 }).catch((reason) => {
5884 context.meta.runtime.triggerEvent(context.me, "fetch:error", { reason });
5885 throw reason;
5886 }).finally(() => {
5887 context.me.removeEventListener("fetch:abort", abortListener);
5888 });
5889 }
5890 };
5891 function _parseScrollModifiers(parser) {
5892 parser.matchToken("the");

Callers

nothing calls this directly

Calls 4

setTimeoutFunction · 0.70
fetchFunction · 0.70
triggerEventMethod · 0.45
convertValueMethod · 0.45

Tested by

no test coverage detected