blob: f331dc446ec2f86b60ce4ab057d21361ca6eb833 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
"use strict";
async function networkRequest(url, opts) {
const supportedProtocols = ["http:", "https:", "data:"];
// Add file, chrome or moz-extension if the initial source was served by the
// same protocol.
const ADDITIONAL_PROTOCOLS = ["chrome:", "file:", "moz-extension:"];
for (const protocol of ADDITIONAL_PROTOCOLS) {
if (opts.sourceMapBaseURL?.startsWith(protocol)) {
supportedProtocols.push(protocol);
}
}
if (supportedProtocols.every(protocol => !url.startsWith(protocol))) {
throw new Error(`unsupported protocol for sourcemap request ${url}`);
}
const response = await fetch(url, {
cache: opts.loadFromCache ? "default" : "no-cache",
redirect: opts.allowRedirects ? "follow" : "error",
});
if (response.ok) {
if (response.headers.get("Content-Type") === "application/wasm") {
const buffer = await response.arrayBuffer();
return {
content: buffer,
isDwarf: true,
};
}
const text = await response.text();
return { content: text };
}
throw new Error(`request failed with status ${response.status}`);
}
module.exports = { networkRequest };
|