diff options
author | Minteck <contact@minteck.org> | 2022-04-14 17:43:06 +0200 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-04-14 17:43:06 +0200 |
commit | 3071764c42c63f47cd76d80b5b90fe280ac9f0ab (patch) | |
tree | 2458441ce5218cc88a8be165b364f174a9ba8e3b /includes/fetcher/node_modules/axios/lib/helpers/toFormData.js | |
parent | f6e5be4e0ef648d3eb1d8a12edcb48dbb8c31037 (diff) | |
download | ember-3071764c42c63f47cd76d80b5b90fe280ac9f0ab.tar.gz ember-3071764c42c63f47cd76d80b5b90fe280ac9f0ab.tar.bz2 ember-3071764c42c63f47cd76d80b5b90fe280ac9f0ab.zip |
Fetcher
Diffstat (limited to 'includes/fetcher/node_modules/axios/lib/helpers/toFormData.js')
-rw-r--r-- | includes/fetcher/node_modules/axios/lib/helpers/toFormData.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/includes/fetcher/node_modules/axios/lib/helpers/toFormData.js b/includes/fetcher/node_modules/axios/lib/helpers/toFormData.js new file mode 100644 index 0000000..e21d0a7 --- /dev/null +++ b/includes/fetcher/node_modules/axios/lib/helpers/toFormData.js @@ -0,0 +1,55 @@ +'use strict'; + +function combinedKey(parentKey, elKey) { + return parentKey + '.' + elKey; +} + +function buildFormData(formData, data, parentKey) { + if (Array.isArray(data)) { + data.forEach(function buildArray(el, i) { + buildFormData(formData, el, combinedKey(parentKey, i)); + }); + } else if ( + typeof data === 'object' && + !(data instanceof File || data === null) + ) { + Object.keys(data).forEach(function buildObject(key) { + buildFormData( + formData, + data[key], + parentKey ? combinedKey(parentKey, key) : key + ); + }); + } else { + if (data === undefined) { + return; + } + + var value = + typeof data === 'boolean' || typeof data === 'number' + ? data.toString() + : data; + formData.append(parentKey, value); + } +} + +/** + * convert a data object to FormData + * + * type FormDataPrimitive = string | Blob | number | boolean + * interface FormDataNest { + * [x: string]: FormVal + * } + * + * type FormVal = FormDataNest | FormDataPrimitive + * + * @param {FormVal} data + */ + +module.exports = function getFormData(data) { + var formData = new FormData(); + + buildFormData(formData, data); + + return formData; +}; |