Skip to content

Commit 5eecebe

Browse files
Adding proper Date support
1 parent eb1d9db commit 5eecebe

File tree

2 files changed

+35
-33
lines changed

2 files changed

+35
-33
lines changed

index.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ function isArray (value) {
1212
return Array.isArray(value)
1313
}
1414

15+
function isDate (value) {
16+
return value instanceof Date
17+
}
18+
1519
function isBlob (value) {
1620
return value &&
1721
typeof value.size === 'number' &&
@@ -25,10 +29,6 @@ function isFile (value) {
2529
typeof value.name === 'string'
2630
}
2731

28-
function isDate (value) {
29-
return value instanceof Date
30-
}
31-
3232
function objectToFormData (obj, fd, pre) {
3333
fd = fd || new FormData()
3434

@@ -40,7 +40,9 @@ function objectToFormData (obj, fd, pre) {
4040

4141
objectToFormData(value, fd, key)
4242
})
43-
} else if (isObject(obj) && !isFile(obj) && !isDate(obj)) {
43+
} else if (isDate(obj)) {
44+
fd.append(pre, obj.toISOString())
45+
} else if (isObject(obj) && !isDate(obj) && !isFile(obj)) {
4446
Object.keys(obj).forEach(function (prop) {
4547
var value = obj[prop]
4648

test/index.js

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -109,34 +109,6 @@ test('empty string', t => {
109109
t.is(formData.get('foo'), '')
110110
})
111111

112-
test('File', t => {
113-
const foo = new File([], {})
114-
const formData = objectToFormData({
115-
foo
116-
})
117-
118-
t.true(formData.append.calledOnce)
119-
t.deepEqual(formData.append.getCall(0).args, [
120-
'foo',
121-
foo
122-
])
123-
t.is(formData.get('foo'), foo)
124-
})
125-
126-
test('Date', t => {
127-
const foo = new Date()
128-
const formData = objectToFormData({
129-
foo
130-
})
131-
132-
t.true(formData.append.calledOnce)
133-
t.deepEqual(formData.append.getCall(0).args, [
134-
'foo',
135-
foo
136-
])
137-
t.is(formData.get('foo'), foo.toString())
138-
})
139-
140112
test('Object', t => {
141113
const formData = objectToFormData({
142114
foo: {
@@ -315,3 +287,31 @@ test('Array where key ends with "[]"', t => {
315287
'baz'
316288
])
317289
})
290+
291+
test('Date', t => {
292+
const foo = new Date(2000, 0, 1, 1, 1, 1)
293+
const formData = objectToFormData({
294+
foo
295+
})
296+
297+
t.true(formData.append.calledOnce)
298+
t.deepEqual(formData.append.getCall(0).args, [
299+
'foo',
300+
foo.toISOString()
301+
])
302+
t.is(formData.get('foo'), foo.toISOString())
303+
})
304+
305+
test('File', t => {
306+
const foo = new File([], {})
307+
const formData = objectToFormData({
308+
foo
309+
})
310+
311+
t.true(formData.append.calledOnce)
312+
t.deepEqual(formData.append.getCall(0).args, [
313+
'foo',
314+
foo
315+
])
316+
t.is(formData.get('foo'), foo)
317+
})

0 commit comments

Comments
 (0)