Skip to content

Commit e93a430

Browse files
committed
Add FormData.entries()
1 parent f6a77d1 commit e93a430

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

src/FetchAPI/FormData.res

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ external getAll: (formData, string) => array<formDataEntryValue> = "getAll"
4545
@send
4646
external has: (formData, string) => bool = "has"
4747

48+
/**
49+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FormData/entries)
50+
*/
51+
@send
52+
external entries: formData => Iterator.t<(string, formDataEntryValue)> = "entries"
53+
4854
/**
4955
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FormData/keys)
5056
*/

tests/FetchAPI/FormData__test.js

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/FetchAPI/FormData__test.res

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,12 @@ let _ = allImages->Array.forEach(entry => {
3131
// Create formDataEntryValue from string or file
3232
let stringEntry = FormDataEntryValue.fromString("test value")
3333
let fileEntry = FormDataEntryValue.fromFile(File.make(~fileBits=[], ~fileName="test.txt"))
34+
35+
// Iterate over all entries in the FormData
36+
let entries: Iterator.t<(string, FetchAPI.formDataEntryValue)> = formData->FormData.entries
37+
let _ = entries->Iterator.forEach(((key, value)) => {
38+
switch value->FormDataEntryValue.decode {
39+
| FormDataEntryValue.String(s) => Console.log(`${key}: ${s}`)
40+
| FormDataEntryValue.File(f) => Console.log(`${key}: [File] ${f.name}`)
41+
}
42+
})

0 commit comments

Comments
 (0)