Skip to content

Commit 9b9723d

Browse files
authored
Merge pull request #17 from rescript-lang/fetch-with-options
Add fetch with headers and body sample
2 parents 20e9e63 + 9d44769 commit 9b9723d

10 files changed

+91
-7
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"scripts": {
3030
"test": "node tests/index.js",
3131
"build": "rewatch",
32-
"format": "rescript format -all && prettier --write ./docs ./tests/index.js ./package.json",
32+
"format": "rescript format -all && prettier --write ./tests/index.js ./package.json",
3333
"docs": "astro dev",
3434
"build:docs": "astro build"
3535
},

src/DOMAPI/Window.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/FetchAPI.res

+4-2
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,9 @@ type urlSearchParams = {
218218
size: int,
219219
}
220220

221-
type headersInit = any
221+
type headersInit
222+
223+
type bodyInit
222224

223225
type requestInfo = any
224226

@@ -236,7 +238,7 @@ type requestInit = {
236238
/**
237239
A BodyInit object or null to set request's body.
238240
*/
239-
mutable body?: Null.t<bodyInit>,
241+
mutable body?: bodyInit,
240242
/**
241243
A string whose value is a same-origin URL, "about:client", or the empty string, to set request's referrer.
242244
*/

src/FetchAPI/BodyInit.js

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/FetchAPI/BodyInit.res

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
open FileAPI
2+
open FetchAPI
3+
4+
/**
5+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
6+
*/
7+
external fromString: string => bodyInit = "%identity"
8+
9+
/**
10+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
11+
*/
12+
external fromArrayBuffer: ArrayBuffer.t => bodyInit = "%identity"
13+
14+
/**
15+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
16+
*/
17+
external fromTypedArray: TypedArray.t<'t> => bodyInit = "%identity"
18+
19+
/**
20+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
21+
*/
22+
external fromDataView: DataView.t => bodyInit = "%identity"
23+
24+
/**
25+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
26+
*/
27+
external fromBlob: blob => bodyInit = "%identity"
28+
29+
/**
30+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
31+
*/
32+
external fromFile: file => bodyInit = "%identity"
33+
34+
/**
35+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
36+
*/
37+
external fromURLSearchParams: urlSearchParams => bodyInit = "%identity"
38+
39+
/**
40+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
41+
*/
42+
external fromFormData: formData => bodyInit = "%identity"
43+
44+
/**
45+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
46+
*/
47+
external fromReadableStream: readableStream<'t> => bodyInit = "%identity"

src/FetchAPI/HeadersInit.js

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/FetchAPI/HeadersInit.res

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
open FetchAPI
2+
3+
/**
4+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_headers)
5+
*/
6+
external fromDict: dict<string> => headersInit = "%identity"
7+
8+
/**
9+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_headers)
10+
*/
11+
external fromHeaders: headers => headersInit = "%identity"

src/Prelude.res

-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ external unsafeConversation: 'tinput => 'toutput = "%identity"
55

66
type bufferSource = any
77

8-
type bodyInit = any
9-
108
type sharedArrayBuffer = any
119

1210
type float64Array = any

tests/Global__test.js

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/Global__test.res

+13
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
11
open WebAPI.Global
22

33
let response = await fetch("https://rescript-lang.org/")
4+
5+
let response2 = await fetch(
6+
"https://rescript-lang.org/",
7+
~init={
8+
headers: HeadersInit.fromDict(
9+
dict{
10+
"Content-Type": "application/json",
11+
"Authorization": "Bearer token",
12+
},
13+
),
14+
body: BodyInit.fromString(`secret=foo&response=bar`),
15+
},
16+
)

0 commit comments

Comments
 (0)