New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@trayio/axios

Package Overview
Dependencies
Maintainers
4
Versions
187
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@trayio/axios - npm Package Compare versions

Comparing version 1.8.0 to 1.9.0

5

dist/http/AxiosHttpClient.d.ts
import * as TE from 'fp-ts/TaskEither';
import { HttpClient } from '@trayio/commons/http/HttpClient';
import { HttpMethod, HttpRequest, HttpResponse } from '@trayio/commons/http/Http';
import FormData = require('form-data');
import { FileStorage } from '@trayio/commons/file/File';
export declare class AxiosHttpClient implements HttpClient {
private readonly fileStorage;
constructor(fileStorage: FileStorage);
execute(method: HttpMethod, url: string, request: HttpRequest): TE.TaskEither<Error, HttpResponse>;
private axiosErrorToHttpResponse;
private axiosResponseToHttpResponse;
appendFields: (formData: FormData) => (fields: Record<string, string>) => FormData;
}
//# sourceMappingURL=AxiosHttpClient.d.ts.map

84

dist/http/AxiosHttpClient.js
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -7,6 +30,30 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

exports.AxiosHttpClient = void 0;
const TE = __importStar(require("fp-ts/TaskEither"));
const function_1 = require("fp-ts/function");
const Http_1 = require("@trayio/commons/http/Http");
const Task_1 = require("@trayio/commons/task/Task");
const axios_1 = __importDefault(require("axios"));
const FormData = require("form-data");
class AxiosHttpClient {
constructor(fileStorage) {
this.fileStorage = fileStorage;
this.appendFields = (formData) => (fields) => {
Object.entries(fields).forEach(([key, value]) => {
formData.append(key, value);
});
return formData;
};
}
execute(method, url, request) {
/*
Removes default headers so that we control what we send to the server, without this, it sends default content-type and accept headers,
the caller of this HttpClient interface is responsible of deciding the values of these headers, axios shouldn't try to be smart
and derive these from the body or even set defaults.
*/
axios_1.default.defaults.headers.common = {};
axios_1.default.defaults.headers.get = {};
axios_1.default.defaults.headers.post = {};
axios_1.default.defaults.headers.put = {};
axios_1.default.defaults.headers.patch = {};
axios_1.default.defaults.headers.delete = {};
const finalUrl = Object.entries(request.pathParams).reduce((acc, [key, value]) => acc.replace(`:${key}`, encodeURIComponent(value)), url);

@@ -17,3 +64,27 @@ const headers = Object.entries(request.headers).reduce((acc, [key, value]) => {

}, {});
const axiosConfig = {
let axiosConfig;
if (headers['content-type'] &&
headers['content-type'].includes(Http_1.HttpContentType.MultipartRequestBody)) {
const formData = new FormData();
this.appendFields(formData)(request.body.fields);
const fileEntries = Object.entries(request.body.files);
const taskEithers = fileEntries.map(([key, value]) => (0, function_1.pipe)(this.fileStorage.read(value.key), TE.map((file) => (Object.assign(Object.assign({}, file), { formFileName: key })))));
return (0, function_1.pipe)(TE.sequenceArray(taskEithers), TE.map((files) => files), TE.chain((files) => {
files.forEach((file) => {
formData.append(file.formFileName, file.content, file.metadata.key);
});
axiosConfig = {
url: finalUrl,
method: method.toString(),
data: formData,
responseType: 'arraybuffer',
headers,
params: request.queryString,
};
return (0, Task_1.createTaskEitherFromPromiseWithSimpleError)(() => (0, axios_1.default)(axiosConfig)
.then(this.axiosResponseToHttpResponse)
.catch(this.axiosErrorToHttpResponse.bind(this)));
}));
}
axiosConfig = {
url: finalUrl,

@@ -26,13 +97,2 @@ method: method.toString(),

};
/*
Removes default headers so that we control what we send to the server, without this, it sends default content-type and accept headers,
the caller of this HttpClient interface is responsible of deciding the values of these headers, axios shouldn't try to be smart
and derive these from the body or even set defaults.
*/
axios_1.default.defaults.headers.common = {};
axios_1.default.defaults.headers.get = {};
axios_1.default.defaults.headers.post = {};
axios_1.default.defaults.headers.put = {};
axios_1.default.defaults.headers.patch = {};
axios_1.default.defaults.headers.delete = {};
return (0, Task_1.createTaskEitherFromPromiseWithSimpleError)(() => (0, axios_1.default)(axiosConfig)

@@ -39,0 +99,0 @@ .then(this.axiosResponseToHttpResponse)

3

dist/http/AxiosHttpClient.unit.test.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const NodeFsFileStorage_1 = require("@trayio/commons/file/NodeFsFileStorage");
const HttpClient_abstract_test_1 = require("@trayio/commons/http/HttpClient.abstract.test");
const AxiosHttpClient_1 = require("./AxiosHttpClient");
(0, HttpClient_abstract_test_1.httpClientTest)(new AxiosHttpClient_1.AxiosHttpClient());
(0, HttpClient_abstract_test_1.httpClientTest)(new AxiosHttpClient_1.AxiosHttpClient(new NodeFsFileStorage_1.NodeFsFileStorage()));
{
"name": "@trayio/axios",
"version": "1.8.0",
"version": "1.9.0",
"description": "Axios extensions and implementations",

@@ -17,4 +17,5 @@ "exports": {

"dependencies": {
"@trayio/commons": "1.8.0",
"axios": "0.27.2"
"@trayio/commons": "1.9.0",
"axios": "0.27.2",
"form-data": "4.0.0"
},

@@ -21,0 +22,0 @@ "typesVersions": {

Sorry, the diff of this file is not supported yet

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