UNPKG

to-formdata

Version:

Converts json object/array with image upload to formadata in nested level.

34 lines (29 loc) 937 B
module.exports = (obj, form, namespace) => { let fd = form || new FormData(); let formKey; if (!obj || (!Array.isArray(obj) && typeof obj !== 'object')) { throw new Error("Please provide valid inputs"); } for (let property in obj) { if (obj.hasOwnProperty(property) && obj[property]) { if (namespace) { formKey = namespace + '[' + property + ']'; } else { formKey = property; } // if the property is an object, but not a File, use recursivity. if (obj[property] instanceof Date) { fd.append(formKey, obj[property].toISOString()); } else if ( typeof obj[property] === 'object' && !(obj[property] instanceof File) ) { toFormData(obj[property], fd, formKey); } else { // if it's a string or a File object fd.append(formKey, obj[property]); } } } return fd; }