11import { hasOwnProperty , isArray , isFile } from './objects'
22
3- export function objectToFormData ( object : any , formData = new FormData ( ) , parent = '' ) : FormData {
4- if ( object === null || object === 'undefined' || object . length === 0 ) {
5- formData . append ( parent , object )
3+ const getKey = ( parent : any , property : any ) => ( parent ? parent + '[' + property + ']' : property )
4+ export function objectToFormData ( obj : any , formData = new FormData ( ) , parent = '' ) : FormData {
5+ if ( obj === null || obj === 'undefined' || obj . length === 0 ) {
6+ formData . append ( parent , obj )
67 } else {
7- for ( const property in object ) {
8- if ( hasOwnProperty ( object , property ) ) {
9- appendToFormData ( formData , getKey ( parent , property ) , object [ property ] )
8+ for ( const property in obj ) {
9+ if ( hasOwnProperty ( obj , property ) ) {
10+ appendToFormData ( formData , getKey ( parent , property ) , obj [ property ] )
1011 }
1112 }
1213 }
1314 return formData
1415}
15-
16- function getKey ( parent : any , property : any ) {
17- return parent ? parent + '[' + property + ']' : property
18- }
19-
2016function appendToFormData ( formData : FormData , key : string , value : any ) {
21- if ( value instanceof Date ) {
22- return formData . append ( key , value . toISOString ( ) )
23- }
24-
25- if ( value instanceof File ) {
26- return formData . append ( key , value , value . name )
27- }
28-
29- if ( typeof value === 'boolean' ) {
30- return formData . append ( key , value ? '1' : '0' )
31- }
32-
33- if ( value === null ) {
34- return formData . append ( key , '' )
35- }
36-
37- if ( typeof value !== 'object' ) {
38- return formData . append ( key , value )
39- }
40-
17+ if ( value instanceof Date ) return formData . append ( key , value . toISOString ( ) )
18+ if ( value instanceof File ) return formData . append ( key , value , value . name )
19+ if ( typeof value === 'boolean' ) return formData . append ( key , value ? '1' : '0' )
20+ if ( value === null ) return formData . append ( key , '' )
21+ if ( typeof value !== 'object' ) return formData . append ( key , value )
4122 if ( isArray ( value ) && hasFilesDeep ( value ) ) {
4223 for ( let i = 0 ; i < value . length ; i ++ ) {
4324 formData . append ( key + '[' + i + ']' , value [ i ] , value [ i ] . name )
4425 }
4526 return formData
4627 }
47-
4828 objectToFormData ( value , formData , key )
4929}
50-
5130export function hasFilesDeep ( obj : any ) : boolean {
5231 if ( obj === null ) return false
5332 if ( typeof obj === 'object' ) {
@@ -67,13 +46,10 @@ export function hasFilesDeep(obj: any): boolean {
6746 }
6847 return isFile ( obj )
6948}
70-
71- export function hasFiles ( form : any ) : boolean {
49+ export function hasFiles ( form : any ) {
7250 for ( const prop in form ) {
7351 const hasProp = hasOwnProperty ( form , prop ) || typeof window !== 'undefined'
74- if ( hasProp && hasFilesDeep ( form [ prop ] ) ) {
75- return true
76- }
52+ if ( hasProp && hasFilesDeep ( form [ prop ] ) ) return true
7753 }
7854 return false
7955}
0 commit comments