Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@lifeomic/axios-fetch

Package Overview
Dependencies
Maintainers
2
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lifeomic/axios-fetch - npm Package Compare versions

Comparing version 2.0.5 to 2.0.6-pr-101-1436700965-1636405616.0

src/index.d.ts

32

package.json
{
"name": "@lifeomic/axios-fetch",
"version": "2.0.5",
"version": "2.0.6-pr-101-1436700965-1636405616.0",
"description": "A WebAPI Fetch implementation backed by an Axios client",
"main": "src/index.js",
"types": "src/index.ts",
"types": "src/index.d.ts",
"files": [
"src/**/*"
],
"scripts": {
"test": "nyc ava",
"lint": "eslint . --ext .js,.ts -f codeframe && tsc --noEmit",
"lint": "eslint . --ext .js,.ts -f codeframe",
"postlint": "yarn tsc --noEmit",
"pretest": "yarn lint",

@@ -37,14 +41,14 @@ "coverage": "nyc report --reporter=text-lcov > ./.nyc_output/lcov.info",

"@lifeomic/eslint-plugin-node": "^2.0.1",
"@types/sinon": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^4.22.0",
"@typescript-eslint/parser": "^4.22.0",
"@types/sinon": "^10.0.4",
"@typescript-eslint/eslint-plugin": "^5.1.0",
"@typescript-eslint/parser": "^5.1.0",
"ava": "^3.15.0",
"axios": "^0.21.4",
"coveralls": "^3.1.0",
"eslint": "^6.0.0",
"nock": "^11.3.3",
"nyc": "^15.0.0",
"sinon": "^10.0.1",
"ts-node": "^9.1.1",
"typescript": "^4.2.4"
"axios": "^0.24.0",
"coveralls": "^3.1.1",
"eslint": "^7.32.0",
"nock": "^13.1.4",
"nyc": "^15.1.0",
"sinon": "^11.1.2",
"ts-node": "^10.3.0",
"typescript": "^4.4.4"
},

@@ -51,0 +55,0 @@ "dependencies": {

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildAxiosFetch = void 0;
const node_fetch_1 = require("node-fetch");
const form_data_1 = __importDefault(require("form-data"));
const typeUtils_1 = require("./typeUtils");
/**
* A Fetch WebAPI implementation based on the Axios client
*/
async function axiosFetch(axios,
const axiosFetch = (axios,
// Convert the `fetch` style arguments into a Axios style config
transformer, input, init = {}) {
const rawHeaders = init.headers || {};
const lowerCasedHeaders = Object.keys(rawHeaders).filter(key => key && rawHeaders[key])
transformer = (config) => config) => async (input, init) => {
const rawHeaders = (0, typeUtils_1.createAxiosHeaders)(init === null || init === void 0 ? void 0 : init.headers);
const lowerCasedHeaders = Object.keys(rawHeaders)
.reduce((acc, key) => {
acc[key.toLowerCase()] = rawHeaders[key];
const value = rawHeaders[key];
if (value) {
acc[key.toLowerCase()] = value;
}
return acc;

@@ -25,5 +25,5 @@ }, {});

const rawConfig = {
url: input,
method: init.method || 'GET',
data: typeof init.body === 'undefined' || init.body instanceof form_data_1.default ? init.body : String(init.body),
url: (0, typeUtils_1.getUrl)(input),
method: (init === null || init === void 0 ? void 0 : init.method) || 'GET',
data: init === null || init === void 0 ? void 0 : init.body,
headers: lowerCasedHeaders,

@@ -36,3 +36,3 @@ // Force the response to an arraybuffer type. Without this, the Response

};
const config = transformer ? transformer(rawConfig, input, init) : rawConfig;
const config = transformer(rawConfig, input, init);
let result;

@@ -50,13 +50,12 @@ try {

}
const fetchHeaders = new node_fetch_1.Headers(result.headers);
return new node_fetch_1.Response(result.data, {
status: result.status,
statusText: result.statusText,
headers: fetchHeaders
headers: (0, typeUtils_1.createFetchHeaders)(result.headers)
});
}
};
function buildAxiosFetch(axios, transformer) {
return axiosFetch.bind(undefined, axios, transformer);
return axiosFetch(axios, transformer);
}
exports.buildAxiosFetch = buildAxiosFetch;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQ0FBK0Q7QUFDL0QsMERBQWlDO0FBY2pDOztHQUVHO0FBQ0gsS0FBSyxVQUFVLFVBQVUsQ0FDdkIsS0FBb0I7QUFDcEIsZ0VBQWdFO0FBQ2hFLFdBQThCLEVBQzlCLEtBQWMsRUFDZCxPQUFrQixFQUFFO0lBRXBCLE1BQU0sVUFBVSxHQUEyQixJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUM5RCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwRixNQUFNLENBQ0wsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDWCxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBVyxDQUFDO1FBQ25ELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO0lBRUosSUFBSSxDQUFDLENBQUMsY0FBYyxJQUFJLGlCQUFpQixDQUFDLEVBQUU7UUFDMUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEdBQUcsMEJBQTBCLENBQUM7S0FDaEU7SUFFRCxNQUFNLFNBQVMsR0FBdUI7UUFDcEMsR0FBRyxFQUFFLEtBQUs7UUFDVixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLO1FBQzVCLElBQUksRUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLFlBQVksbUJBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkcsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQix3RUFBd0U7UUFDeEUsNEVBQTRFO1FBQzVFLGdCQUFnQjtRQUNoQixxRUFBcUU7UUFDckUsWUFBWSxFQUFFLGFBQWE7S0FDNUIsQ0FBQztJQUVGLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUU3RSxJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUk7UUFDRixNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3RDO0lBQUMsT0FBTyxHQUFRLEVBQUU7UUFDakIsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE1BQU0sR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO1NBQ3ZCO2FBQU07WUFDTCxNQUFNLEdBQUcsQ0FBQztTQUNYO0tBQ0Y7SUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLG9CQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXRELE9BQU8sSUFBSSxxQkFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQ3JCLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtRQUM3QixPQUFPLEVBQUUsWUFBWTtLQUN0QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFFLEtBQW9CLEVBQUUsV0FBOEI7SUFDbkYsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUZELDBDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzcG9uc2UsIEhlYWRlcnMgYXMgRmV0Y2hIZWFkZXJzIH0gZnJvbSAnbm9kZS1mZXRjaCc7XG5pbXBvcnQgRm9ybURhdGEgZnJvbSAnZm9ybS1kYXRhJztcbmltcG9ydCB7IEF4aW9zSW5zdGFuY2UsIEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZldGNoSW5pdCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgbWV0aG9kPzogQXhpb3NSZXF1ZXN0Q29uZmlnWydtZXRob2QnXTtcbiAgYm9keT86IEZvcm1EYXRhIHwgYW55O1xuICBleHRyYT86IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgQXhpb3NUcmFuc2Zvcm1lciA9IChjb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZywgaW5wdXQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgaW5pdDogRmV0Y2hJbml0KSA9PiBBeGlvc1JlcXVlc3RDb25maWc7XG5cbmV4cG9ydCB0eXBlIEF4aW9zRmV0Y2ggPSAoaW5wdXQ/OiBzdHJpbmcsIGluaXQ/OiBGZXRjaEluaXQpID0+IFByb21pc2U8UmVzcG9uc2U+O1xuXG4vKipcbiAqIEEgRmV0Y2ggV2ViQVBJIGltcGxlbWVudGF0aW9uIGJhc2VkIG9uIHRoZSBBeGlvcyBjbGllbnRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gYXhpb3NGZXRjaCAoXG4gIGF4aW9zOiBBeGlvc0luc3RhbmNlLFxuICAvLyBDb252ZXJ0IHRoZSBgZmV0Y2hgIHN0eWxlIGFyZ3VtZW50cyBpbnRvIGEgQXhpb3Mgc3R5bGUgY29uZmlnXG4gIHRyYW5zZm9ybWVyPzogQXhpb3NUcmFuc2Zvcm1lcixcbiAgaW5wdXQ/OiBzdHJpbmcsXG4gIGluaXQ6IEZldGNoSW5pdCA9IHt9XG4pIHtcbiAgY29uc3QgcmF3SGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IGluaXQuaGVhZGVycyB8fCB7fTtcbiAgY29uc3QgbG93ZXJDYXNlZEhlYWRlcnMgPSBPYmplY3Qua2V5cyhyYXdIZWFkZXJzKS5maWx0ZXIoa2V5ID0+IGtleSAmJiByYXdIZWFkZXJzW2tleV0pXG4gICAgLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihcbiAgICAgIChhY2MsIGtleSkgPT4ge1xuICAgICAgICBhY2Nba2V5LnRvTG93ZXJDYXNlKCldID0gcmF3SGVhZGVyc1trZXldIGFzIHN0cmluZztcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7fVxuICAgICk7XG5cbiAgaWYgKCEoJ2NvbnRlbnQtdHlwZScgaW4gbG93ZXJDYXNlZEhlYWRlcnMpKSB7XG4gICAgbG93ZXJDYXNlZEhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID0gJ3RleHQvcGxhaW47Y2hhcnNldD1VVEYtOCc7XG4gIH1cblxuICBjb25zdCByYXdDb25maWc6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHtcbiAgICB1cmw6IGlucHV0LFxuICAgIG1ldGhvZDogaW5pdC5tZXRob2QgfHwgJ0dFVCcsXG4gICAgZGF0YTogdHlwZW9mIGluaXQuYm9keSA9PT0gJ3VuZGVmaW5lZCcgfHwgaW5pdC5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGEgPyBpbml0LmJvZHkgOiBTdHJpbmcoaW5pdC5ib2R5KSxcbiAgICBoZWFkZXJzOiBsb3dlckNhc2VkSGVhZGVycyxcbiAgICAvLyBGb3JjZSB0aGUgcmVzcG9uc2UgdG8gYW4gYXJyYXlidWZmZXIgdHlwZS4gV2l0aG91dCB0aGlzLCB0aGUgUmVzcG9uc2VcbiAgICAvLyBvYmplY3Qgd2lsbCB0cnkgdG8gZ3Vlc3MgdGhlIGNvbnRlbnQgdHlwZSBhbmQgYWRkIGhlYWRlcnMgdGhhdCB3ZXJlbid0IGluXG4gICAgLy8gdGhlIHJlc3BvbnNlLlxuICAgIC8vIE5PVEU6IERvbid0IHVzZSAnc3RyZWFtJyBiZWNhdXNlIGl0J3Mgbm90IHN1cHBvcnRlZCBpbiB0aGUgYnJvd3NlclxuICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ1xuICB9O1xuXG4gIGNvbnN0IGNvbmZpZyA9IHRyYW5zZm9ybWVyID8gdHJhbnNmb3JtZXIocmF3Q29uZmlnLCBpbnB1dCwgaW5pdCkgOiByYXdDb25maWc7XG5cbiAgbGV0IHJlc3VsdDtcbiAgdHJ5IHtcbiAgICByZXN1bHQgPSBhd2FpdCBheGlvcy5yZXF1ZXN0KGNvbmZpZyk7XG4gIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgaWYgKGVyci5yZXNwb25zZSkge1xuICAgICAgcmVzdWx0ID0gZXJyLnJlc3BvbnNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZmV0Y2hIZWFkZXJzID0gbmV3IEZldGNoSGVhZGVycyhyZXN1bHQuaGVhZGVycyk7XG5cbiAgcmV0dXJuIG5ldyBSZXNwb25zZShyZXN1bHQuZGF0YSwge1xuICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyxcbiAgICBzdGF0dXNUZXh0OiByZXN1bHQuc3RhdHVzVGV4dCxcbiAgICBoZWFkZXJzOiBmZXRjaEhlYWRlcnNcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEF4aW9zRmV0Y2ggKGF4aW9zOiBBeGlvc0luc3RhbmNlLCB0cmFuc2Zvcm1lcj86IEF4aW9zVHJhbnNmb3JtZXIpOiBBeGlvc0ZldGNoIHtcbiAgcmV0dXJuIGF4aW9zRmV0Y2guYmluZCh1bmRlZmluZWQsIGF4aW9zLCB0cmFuc2Zvcm1lcik7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBZ0U7QUFDaEUsMkNBQTZFO0FBSzdFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FDakIsS0FBb0I7QUFDcEIsZ0VBQWdFO0FBQ2hFLGNBQXNDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQ3hELEVBQUUsQ0FBQyxLQUFLLEVBQ04sS0FBa0IsRUFDbEIsSUFBVyxFQUNYLEVBQUU7SUFDRixNQUFNLFVBQVUsR0FBRyxJQUFBLDhCQUFrQixFQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQzlDLE1BQU0sQ0FDTCxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNYLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixJQUFJLEtBQUssRUFBRTtZQUNULEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDaEM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztJQUVKLElBQUksQ0FBQyxDQUFDLGNBQWMsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFO1FBQzFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxHQUFHLDBCQUEwQixDQUFDO0tBQ2hFO0lBRUQsTUFBTSxTQUFTLEdBQXVCO1FBQ3BDLEdBQUcsRUFBRSxJQUFBLGtCQUFNLEVBQUMsS0FBSyxDQUFDO1FBQ2xCLE1BQU0sRUFBRSxDQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxNQUF1QyxLQUFJLEtBQUs7UUFDL0QsSUFBSSxFQUFFLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxJQUFJO1FBQ2hCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsd0VBQXdFO1FBQ3hFLDRFQUE0RTtRQUM1RSxnQkFBZ0I7UUFDaEIscUVBQXFFO1FBQ3JFLFlBQVksRUFBRSxhQUFhO0tBQzVCLENBQUM7SUFFRixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVuRCxJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUk7UUFDRixNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3RDO0lBQUMsT0FBTyxHQUFRLEVBQUU7UUFDakIsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE1BQU0sR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO1NBQ3ZCO2FBQU07WUFDTCxNQUFNLEdBQUcsQ0FBQztTQUNYO0tBQ0Y7SUFFRCxPQUFPLElBQUkscUJBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQy9CLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtRQUNyQixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7UUFDN0IsT0FBTyxFQUFFLElBQUEsOEJBQWtCLEVBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztLQUM1QyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFSixTQUFnQixlQUFlLENBQTBDLEtBQW9CLEVBQUUsV0FBb0M7SUFDakksT0FBTyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFGRCwwQ0FFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3BvbnNlLCBSZXF1ZXN0SW5mbywgUmVxdWVzdEluaXQgfSBmcm9tICdub2RlLWZldGNoJztcbmltcG9ydCB7IGNyZWF0ZUF4aW9zSGVhZGVycywgY3JlYXRlRmV0Y2hIZWFkZXJzLCBnZXRVcmwgfSBmcm9tICcuL3R5cGVVdGlscyc7XG5pbXBvcnQgeyBBeGlvc0luc3RhbmNlLCBBeGlvc1JlcXVlc3RDb25maWcgfSBmcm9tICdheGlvcyc7XG5cbmV4cG9ydCB0eXBlIEF4aW9zVHJhbnNmb3JtZXI8SW5pdCBleHRlbmRzIFJlcXVlc3RJbml0ID0gUmVxdWVzdEluaXQ+ID0gKGNvbmZpZzogQXhpb3NSZXF1ZXN0Q29uZmlnLCBpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ/OiBJbml0KSA9PiBBeGlvc1JlcXVlc3RDb25maWc7XG5cbi8qKlxuICogQSBGZXRjaCBXZWJBUEkgaW1wbGVtZW50YXRpb24gYmFzZWQgb24gdGhlIEF4aW9zIGNsaWVudFxuICovXG5jb25zdCBheGlvc0ZldGNoID0gPEluaXQgZXh0ZW5kcyBSZXF1ZXN0SW5pdCA9IFJlcXVlc3RJbml0PihcbiAgYXhpb3M6IEF4aW9zSW5zdGFuY2UsXG4gIC8vIENvbnZlcnQgdGhlIGBmZXRjaGAgc3R5bGUgYXJndW1lbnRzIGludG8gYSBBeGlvcyBzdHlsZSBjb25maWdcbiAgdHJhbnNmb3JtZXI6IEF4aW9zVHJhbnNmb3JtZXI8SW5pdD4gPSAoY29uZmlnKSA9PiBjb25maWdcbikgPT4gYXN5bmMgKFxuICAgIGlucHV0OiBSZXF1ZXN0SW5mbyxcbiAgICBpbml0PzogSW5pdFxuICApID0+IHtcbiAgICBjb25zdCByYXdIZWFkZXJzID0gY3JlYXRlQXhpb3NIZWFkZXJzKGluaXQ/LmhlYWRlcnMpO1xuICAgIGNvbnN0IGxvd2VyQ2FzZWRIZWFkZXJzID0gT2JqZWN0LmtleXMocmF3SGVhZGVycylcbiAgICAgIC5yZWR1Y2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG4gICAgICAgIChhY2MsIGtleSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gcmF3SGVhZGVyc1trZXldO1xuICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgYWNjW2tleS50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7fVxuICAgICAgKTtcblxuICAgIGlmICghKCdjb250ZW50LXR5cGUnIGluIGxvd2VyQ2FzZWRIZWFkZXJzKSkge1xuICAgICAgbG93ZXJDYXNlZEhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID0gJ3RleHQvcGxhaW47Y2hhcnNldD1VVEYtOCc7XG4gICAgfVxuXG4gICAgY29uc3QgcmF3Q29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICB1cmw6IGdldFVybChpbnB1dCksXG4gICAgICBtZXRob2Q6IChpbml0Py5tZXRob2QgYXMgQXhpb3NSZXF1ZXN0Q29uZmlnWydtZXRob2QnXSkgfHwgJ0dFVCcsXG4gICAgICBkYXRhOiBpbml0Py5ib2R5LFxuICAgICAgaGVhZGVyczogbG93ZXJDYXNlZEhlYWRlcnMsXG4gICAgICAvLyBGb3JjZSB0aGUgcmVzcG9uc2UgdG8gYW4gYXJyYXlidWZmZXIgdHlwZS4gV2l0aG91dCB0aGlzLCB0aGUgUmVzcG9uc2VcbiAgICAgIC8vIG9iamVjdCB3aWxsIHRyeSB0byBndWVzcyB0aGUgY29udGVudCB0eXBlIGFuZCBhZGQgaGVhZGVycyB0aGF0IHdlcmVuJ3QgaW5cbiAgICAgIC8vIHRoZSByZXNwb25zZS5cbiAgICAgIC8vIE5PVEU6IERvbid0IHVzZSAnc3RyZWFtJyBiZWNhdXNlIGl0J3Mgbm90IHN1cHBvcnRlZCBpbiB0aGUgYnJvd3NlclxuICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IHRyYW5zZm9ybWVyKHJhd0NvbmZpZywgaW5wdXQsIGluaXQpO1xuXG4gICAgbGV0IHJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgYXhpb3MucmVxdWVzdChjb25maWcpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoZXJyLnJlc3BvbnNlKSB7XG4gICAgICAgIHJlc3VsdCA9IGVyci5yZXNwb25zZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKHJlc3VsdC5kYXRhLCB7XG4gICAgICBzdGF0dXM6IHJlc3VsdC5zdGF0dXMsXG4gICAgICBzdGF0dXNUZXh0OiByZXN1bHQuc3RhdHVzVGV4dCxcbiAgICAgIGhlYWRlcnM6IGNyZWF0ZUZldGNoSGVhZGVycyhyZXN1bHQuaGVhZGVycylcbiAgICB9KTtcbiAgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQXhpb3NGZXRjaDxJbml0IGV4dGVuZHMgUmVxdWVzdEluaXQgPSBSZXF1ZXN0SW5pdD4gKGF4aW9zOiBBeGlvc0luc3RhbmNlLCB0cmFuc2Zvcm1lcj86IEF4aW9zVHJhbnNmb3JtZXI8SW5pdD4pIHtcbiAgcmV0dXJuIGF4aW9zRmV0Y2goYXhpb3MsIHRyYW5zZm9ybWVyKTtcbn1cbiJdfQ==

@@ -1,76 +0,69 @@

import { Response, Headers as FetchHeaders } from 'node-fetch';
import FormData from 'form-data';
import { AxiosInstance, AxiosRequestConfig } from './types';
import { Response, RequestInfo, RequestInit } from 'node-fetch';
import { createAxiosHeaders, createFetchHeaders, getUrl } from './typeUtils';
import { AxiosInstance, AxiosRequestConfig } from 'axios';
export interface FetchInit extends Record<string, any> {
headers?: Record<string, string>;
method?: AxiosRequestConfig['method'];
body?: FormData | any;
extra?: any;
}
export type AxiosTransformer<Init extends RequestInit = RequestInit> = (config: AxiosRequestConfig, input: RequestInfo, init?: Init) => AxiosRequestConfig;
export type AxiosTransformer = (config: AxiosRequestConfig, input: string | undefined, init: FetchInit) => AxiosRequestConfig;
export type AxiosFetch = (input?: string, init?: FetchInit) => Promise<Response>;
/**
* A Fetch WebAPI implementation based on the Axios client
*/
async function axiosFetch (
const axiosFetch = <Init extends RequestInit = RequestInit>(
axios: AxiosInstance,
// Convert the `fetch` style arguments into a Axios style config
transformer?: AxiosTransformer,
input?: string,
init: FetchInit = {}
) {
const rawHeaders: Record<string, string> = init.headers || {};
const lowerCasedHeaders = Object.keys(rawHeaders).filter(key => key && rawHeaders[key])
.reduce<Record<string, string>>(
(acc, key) => {
acc[key.toLowerCase()] = rawHeaders[key] as string;
return acc;
},
{}
);
transformer: AxiosTransformer<Init> = (config) => config
) => async (
input: RequestInfo,
init?: Init
) => {
const rawHeaders = createAxiosHeaders(init?.headers);
const lowerCasedHeaders = Object.keys(rawHeaders)
.reduce<Record<string, string>>(
(acc, key) => {
const value = rawHeaders[key];
if (value) {
acc[key.toLowerCase()] = value;
}
return acc;
},
{}
);
if (!('content-type' in lowerCasedHeaders)) {
lowerCasedHeaders['content-type'] = 'text/plain;charset=UTF-8';
}
if (!('content-type' in lowerCasedHeaders)) {
lowerCasedHeaders['content-type'] = 'text/plain;charset=UTF-8';
}
const rawConfig: AxiosRequestConfig = {
url: input,
method: init.method || 'GET',
data: typeof init.body === 'undefined' || init.body instanceof FormData ? init.body : String(init.body),
headers: lowerCasedHeaders,
// Force the response to an arraybuffer type. Without this, the Response
// object will try to guess the content type and add headers that weren't in
// the response.
// NOTE: Don't use 'stream' because it's not supported in the browser
responseType: 'arraybuffer'
};
const rawConfig: AxiosRequestConfig = {
url: getUrl(input),
method: (init?.method as AxiosRequestConfig['method']) || 'GET',
data: init?.body,
headers: lowerCasedHeaders,
// Force the response to an arraybuffer type. Without this, the Response
// object will try to guess the content type and add headers that weren't in
// the response.
// NOTE: Don't use 'stream' because it's not supported in the browser
responseType: 'arraybuffer'
};
const config = transformer ? transformer(rawConfig, input, init) : rawConfig;
const config = transformer(rawConfig, input, init);
let result;
try {
result = await axios.request(config);
} catch (err: any) {
if (err.response) {
result = err.response;
} else {
throw err;
let result;
try {
result = await axios.request(config);
} catch (err: any) {
if (err.response) {
result = err.response;
} else {
throw err;
}
}
}
const fetchHeaders = new FetchHeaders(result.headers);
return new Response(result.data, {
status: result.status,
statusText: result.statusText,
headers: createFetchHeaders(result.headers)
});
};
return new Response(result.data, {
status: result.status,
statusText: result.statusText,
headers: fetchHeaders
});
export function buildAxiosFetch<Init extends RequestInit = RequestInit> (axios: AxiosInstance, transformer?: AxiosTransformer<Init>) {
return axiosFetch(axios, transformer);
}
export function buildAxiosFetch (axios: AxiosInstance, transformer?: AxiosTransformer): AxiosFetch {
return axiosFetch.bind(undefined, axios, transformer);
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc