PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@stacks/network/dist
Просмотр файла: fetch.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createFetchFn = exports.createApiKeyMiddleware = exports.hostMatches = exports.fetchWrapper = exports.setFetchOptions = exports.getFetchOptions = void 0;
require("cross-fetch/polyfill");
const defaultFetchOpts = {
referrerPolicy: 'origin',
};
const getFetchOptions = () => {
return defaultFetchOpts;
};
exports.getFetchOptions = getFetchOptions;
const setFetchOptions = (ops) => {
return Object.assign(defaultFetchOpts, ops);
};
exports.setFetchOptions = setFetchOptions;
async function fetchWrapper(input, init) {
const fetchOpts = {};
Object.assign(fetchOpts, init, defaultFetchOpts);
const fetchResult = await fetch(input, fetchOpts);
return fetchResult;
}
exports.fetchWrapper = fetchWrapper;
function hostMatches(host, pattern) {
if (typeof pattern === 'string')
return pattern === host;
return pattern.exec(host);
}
exports.hostMatches = hostMatches;
function createApiKeyMiddleware({ apiKey, host = /(.*)api(.*)\.stacks\.co$/i, httpHeader = 'x-api-key', }) {
return {
pre: context => {
const reqUrl = new URL(context.url);
if (!hostMatches(reqUrl.host, host))
return;
const headers = new Headers(context.init.headers);
headers.set(httpHeader, apiKey);
context.init.headers = headers;
},
};
}
exports.createApiKeyMiddleware = createApiKeyMiddleware;
function argsForCreateFetchFn(args) {
let fetchLib = fetchWrapper;
let middlewares = [];
if (args.length > 0 && typeof args[0] === 'function') {
fetchLib = args.shift();
}
if (args.length > 0) {
middlewares = args;
}
return { fetchLib, middlewares };
}
function createFetchFn(...args) {
const { fetchLib, middlewares } = argsForCreateFetchFn(args);
const fetchFn = async (url, init) => {
var _a;
let fetchParams = { url, init: init !== null && init !== void 0 ? init : {} };
for (const middleware of middlewares) {
if (typeof middleware.pre === 'function') {
const result = await Promise.resolve(middleware.pre(Object.assign({ fetch: fetchLib }, fetchParams)));
fetchParams = result !== null && result !== void 0 ? result : fetchParams;
}
}
let response = await fetchLib(fetchParams.url, fetchParams.init);
for (const middleware of middlewares) {
if (typeof middleware.post === 'function') {
const result = await Promise.resolve(middleware.post({
fetch: fetchLib,
url: fetchParams.url,
init: fetchParams.init,
response: (_a = response === null || response === void 0 ? void 0 : response.clone()) !== null && _a !== void 0 ? _a : response,
}));
response = result !== null && result !== void 0 ? result : response;
}
}
return response;
};
return fetchFn;
}
exports.createFetchFn = createFetchFn;
//# sourceMappingURL=fetch.js.mapВыполнить команду
Для локальной разработки. Не используйте в интернете!