in kit/svelteKitCustomClient/client.js [494:540]
async fetch(resource, init) {
/** @type {URL | string} */
let requested;
if (resource instanceof Request) {
requested = resource.url;
// we're not allowed to modify the received `Request` object, so in order
// to fixup relative urls we create a new equivalent `init` object instead
init = {
// the request body must be consumed in memory until browsers
// implement streaming request bodies and/or the body getter
body:
resource.method === "GET" || resource.method === "HEAD"
? undefined
: await resource.blob(),
cache: resource.cache,
credentials: resource.credentials,
headers: resource.headers,
integrity: resource.integrity,
keepalive: resource.keepalive,
method: resource.method,
mode: resource.mode,
redirect: resource.redirect,
referrer: resource.referrer,
referrerPolicy: resource.referrerPolicy,
signal: resource.signal,
...init,
};
} else {
requested = resource;
}
// we must fixup relative urls so they are resolved from the target page
const resolved = new URL(requested, url);
depends(resolved.href);
// match ssr serialized data url, which is important to find cached responses
if (resolved.origin === url.origin) {
requested = resolved.href.slice(url.origin.length);
}
// prerendered pages may be served from any origin, so `initial_fetch` urls shouldn't be resolved
return started
? subsequent_fetch(requested, resolved.href, init)
: initial_fetch(requested, init);
},