laravel-jetstream
Version:
<p align="center"><img src="https://laravel.com/assets/img/components/logo-jetstream.svg"></p>
53 lines (40 loc) • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
exports.objectToFormData = objectToFormData;
function objectToFormData(object) {
var formData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new FormData();
var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
if (object === null || object === 'undefined' || object.length === 0) {
return formData.append(parent, object);
}
for (var property in object) {
if (object.hasOwnProperty(property)) {
appendToFormData(formData, getKey(parent, property), object[property]);
}
}
return formData;
}
function getKey(parent, property) {
return parent ? parent + '[' + property + ']' : property;
}
function appendToFormData(formData, key, value) {
if (value instanceof Date) {
return formData.append(key, value.toISOString());
}
if (value instanceof File) {
return formData.append(key, value, value.name);
}
if (typeof value === "boolean") {
return formData.append(key, value ? '1' : '0');
}
if (value === null) {
return formData.append(key, '');
}
if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') {
return formData.append(key, value);
}
objectToFormData(value, formData, key);
}