Skip to content

Commit 3286928

Browse files
committed
perf: 🔥 correction of the function and inline something
1 parent 6ff84d1 commit 3286928

File tree

1 file changed

+14
-38
lines changed

1 file changed

+14
-38
lines changed

src/util/formData.ts

Lines changed: 14 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,32 @@
11
import { 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-
2016
function 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-
5130
export 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

Comments
 (0)