This repository has been archived on 2023-03-02. You can view files and clone it, but cannot push or open issues or pull requests.
react-rest-request/target/misc.js

50 lines
1.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.urlSearchParamsFromObject = exports.formDataFromObject = exports.isFunction = exports.isObject = void 0;
function isObject(val) {
return Object.prototype.toString.call(val) === '[object Object]';
}
exports.isObject = isObject;
function isFunction(val) {
return typeof val === 'function';
}
exports.isFunction = isFunction;
function formDataFromObject(obj) {
const formData = new FormData();
Object.entries(obj)
.filter(([_, value]) => value !== undefined)
.forEach(([key, value]) => {
if (Array.isArray(value)) {
value
.filter(val => val !== undefined)
.forEach(val => formData.append(key, val));
}
else if (isObject(value)) {
formData.set(key, JSON.stringify(value));
}
else {
formData.set(key, value);
}
});
return formData;
}
exports.formDataFromObject = formDataFromObject;
function urlSearchParamsFromObject(obj) {
const searchParams = new URLSearchParams();
Object.entries(obj)
.filter(([_, value]) => value !== undefined)
.forEach(([key, value]) => {
if (Array.isArray(value)) {
const arrayKey = `${key}[]`;
value
.filter(val => val !== undefined)
.forEach(val => searchParams.append(arrayKey, val));
}
else {
searchParams.set(key, value);
}
});
return searchParams;
}
exports.urlSearchParamsFromObject = urlSearchParamsFromObject;