2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-20 20:00:40 +03:00

Improved FormData support; (#4448)

* Fixed isFormData predicate;
Added support for automatic object serialization to FormData if `Content-Type` is `multipart/form-data`;
Added support for FormData to be overloaded using `config.env.FormData` option;
Added support for FormData in node.js environment through `form-data` package;

* Added the `form-data` package as a dependency for the server build;
Added tests for FormData payload;

* Added FormData automatic serialization section;
Refactored cancellation section;

* Reworked toFormData helper;
Expose toFormData helper as a static method;
Refactored transform request;
Added kindOf, kindOfTest, endsWith, isTypedArray util;
Refactored utils.js to use kindOf for tests;

* Fixed isFormData predicate; (#4413)

Added support for automatic object serialization to FormData if `Content-Type` is `multipart/form-data`;
Added support for FormData to be overloaded using `config.env.FormData` option;
Added support for FormData in node.js environment using `form-data` package;

(cherry picked from commit 73e3bdb883)

* Added shortcut methods `postForm`, `putForm`, `patchForm` to submit a Form;
Added ability to submit FileList object as a FormData;
Updated README.md;

* Updated README.md;
This commit is contained in:
Dmitriy Mozgovoy
2022-03-14 20:22:10 +02:00
committed by GitHub
parent c9aca75257
commit 6b9b05b907
22 changed files with 716 additions and 242 deletions
+35 -10
View File
@@ -1,18 +1,43 @@
var toFormData = require("../../../lib/helpers/toFormData");
var toFormData = require('../../../lib/helpers/toFormData');
describe("toFormData", function () {
it("Convert nested data object to FormDAta", function () {
describe('toFormData', function () {
it('should convert nested data object to FormData', function () {
var o = {
val: 123,
nested: {
arr: ["hello", "world"],
},
arr: ['hello', 'world']
}
};
convertedVal = toFormData(o);
expect(convertedVal instanceof FormData).toEqual(true);
expect(Array.from(convertedVal.keys()).length).toEqual(3);
expect(convertedVal.get("val")).toEqual("123")
expect(convertedVal.get("nested.arr.0")).toEqual("hello")
var form = toFormData(o);
expect(form instanceof FormData).toEqual(true);
expect(Array.from(form.keys()).length).toEqual(3);
expect(form.get('val')).toEqual('123');
expect(form.get('nested.arr.0')).toEqual('hello');
});
it('should append value whose key ends with [] as separate values with the same key', function () {
var data = {
'arr[]': [1, 2, 3]
};
var form = toFormData(data);
expect(Array.from(form.keys()).length).toEqual(3);
expect(form.getAll('arr[]')).toEqual(['1', '2', '3']);
});
it('should append value whose key ends with {} as a JSON string', function () {
var data = {
'obj{}': {x: 1, y: 2}
};
var str = JSON.stringify(data['obj{}']);
var form = toFormData(data);
expect(Array.from(form.keys()).length).toEqual(1);
expect(form.getAll('obj{}')).toEqual([str]);
});
});