PHP WebShell

Текущая директория: /opt/BitGoJS/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

Выполнить команду


Для локальной разработки. Не используйте в интернете!