Skip to content

Commit ef9aeac

Browse files
authored
Merge pull request #103 from stephanoskomnenos/main
Update FetchAPI constructors
2 parents 5bac86c + 6064df8 commit ef9aeac

14 files changed

+167
-20
lines changed

src/FetchAPI/Headers.res

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,25 @@ open Prelude
55
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Headers)
66
*/
77
@new
8-
external make: (~init: array<array<string>>=?) => headers = "Headers"
8+
external make: unit => headers = "Headers"
99

1010
/**
1111
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Headers)
1212
*/
1313
@new
14-
external make2: (~init: any=?) => headers = "Headers"
14+
external fromDict: dict<string> => headers = "Headers"
15+
16+
/**
17+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Headers)
18+
*/
19+
@new
20+
external fromHeaders: headers => headers = "Headers"
21+
22+
/**
23+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Headers)
24+
*/
25+
@new
26+
external fromKeyValueArray: array<(string, string)> => headers = "Headers"
1527

1628
/**
1729
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Headers/append)

src/FetchAPI/HeadersInit.res

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,8 @@ external fromDict: dict<string> => headersInit = "%identity"
99
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_headers)
1010
*/
1111
external fromHeaders: headers => headersInit = "%identity"
12+
13+
/**
14+
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_headers)
15+
*/
16+
external fromKeyValueArray: array<(string, string)> => headersInit = "%identity"

src/FetchAPI/Request.res

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ open FileAPI
55
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request)
66
*/
77
@new
8-
external make: (~input: request, ~init: requestInit=?) => request = "Request"
8+
external fromURL: (string, ~init: requestInit=?) => request = "Request"
99

1010
/**
1111
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request)
1212
*/
1313
@new
14-
external make2: (~input: string, ~init: requestInit=?) => request = "Request"
14+
external fromRequest: (request, ~init: requestInit=?) => request = "Request"
1515

1616
/**
1717
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer)

src/FetchAPI/Response.res

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,43 +5,61 @@ open FileAPI
55
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
66
*/
77
@new
8-
external make: (~body: readableStream<unit>=?, ~init: responseInit=?) => response = "Response"
8+
external fromNull: (@as(json`null`) _, ~init: responseInit=?) => response = "Response"
99

1010
/**
1111
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
1212
*/
1313
@new
14-
external make2: (~body: blob=?, ~init: responseInit=?) => response = "Response"
14+
external fromString: (string, ~init: responseInit=?) => response = "Response"
1515

1616
/**
1717
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
1818
*/
1919
@new
20-
external make3: (~body: DataView.t=?, ~init: responseInit=?) => response = "Response"
20+
external fromArrayBuffer: (ArrayBuffer.t, ~init: responseInit=?) => response = "Response"
2121

2222
/**
2323
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
2424
*/
2525
@new
26-
external make4: (~body: ArrayBuffer.t=?, ~init: responseInit=?) => response = "Response"
26+
external fromTypedArray: (TypedArray.t<'t>, ~init: responseInit=?) => response = "Response"
2727

2828
/**
2929
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
3030
*/
3131
@new
32-
external make5: (~body: formData=?, ~init: responseInit=?) => response = "Response"
32+
external fromDataView: (DataView.t, ~init: responseInit=?) => response = "Response"
3333

3434
/**
3535
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
3636
*/
3737
@new
38-
external make6: (~body: urlSearchParams=?, ~init: responseInit=?) => response = "Response"
38+
external fromBlob: (blob, ~init: responseInit=?) => response = "Response"
3939

4040
/**
4141
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
4242
*/
4343
@new
44-
external make7: (~body: string=?, ~init: responseInit=?) => response = "Response"
44+
external fromFile: (file, ~init: responseInit=?) => response = "Response"
45+
46+
/**
47+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
48+
*/
49+
@new
50+
external fromURLSearchParams: (urlSearchParams, ~init: responseInit=?) => response = "Response"
51+
52+
/**
53+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
54+
*/
55+
@new
56+
external fromFormData: (formData, ~init: responseInit=?) => response = "Response"
57+
58+
/**
59+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
60+
*/
61+
@new
62+
external fromReadableStream: (readableStream<'t>, ~init: responseInit=?) => response = "Response"
4563

4664
/**
4765
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer)

src/FetchAPI/URLSearchParams.res

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,25 @@ open Prelude
55
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/URLSearchParams)
66
*/
77
@new
8-
external make: (~init: array<array<string>>=?) => urlSearchParams = "URLSearchParams"
8+
external make: unit => urlSearchParams = "URLSearchParams"
99

1010
/**
1111
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/URLSearchParams)
1212
*/
1313
@new
14-
external make2: (~init: any=?) => urlSearchParams = "URLSearchParams"
14+
external fromKeyValueArray: array<(string, string)> => urlSearchParams = "URLSearchParams"
1515

1616
/**
1717
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/URLSearchParams)
1818
*/
1919
@new
20-
external make3: (~init: string=?) => urlSearchParams = "URLSearchParams"
20+
external fromDict: dict<string> => urlSearchParams = "URLSearchParams"
21+
22+
/**
23+
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/URLSearchParams)
24+
*/
25+
@new
26+
external fromString: string => urlSearchParams = "URLSearchParams"
2127

2228
/**
2329
Appends a specified key/value pair as a new search parameter.

tests/FetchAPI/Headers__test.js

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

tests/FetchAPI/Headers__test.res

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
let h = Headers.make()
2+
3+
h->Headers.set(~name="X-Test", ~value="1")
4+
5+
let h2 = Headers.fromDict(dict{"X-Vegetable": "Carrot"})
6+
7+
let h3 = Headers.fromKeyValueArray([("X-Fruit", "Apple"), ("X-Vegetable", "Carrot")])
8+
9+
Console.log(h3->Headers.get("X-Fruit"))

tests/FetchAPI/Request__test.js

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

tests/FetchAPI/Request__test.res

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
let req = Request.fromURL("https://example.com")
2+
3+
let req1 = Request.fromURL(
4+
"https://example.com/api",
5+
~init={method: "POST", body: BodyInit.fromString("hello")},
6+
)
7+
8+
let req2 = Request.fromRequest(req1)
9+
10+
Console.log(await req2->Request.text)

tests/FetchAPI/Response__test.js

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

tests/FetchAPI/Response__test.res

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
let response = Response.fromNull(~init={status: 204})
2+
3+
let response1 = Response.fromString(
4+
"pong",
5+
~init={status: 200, headers: HeadersInit.fromDict(dict{"X-Fruit": "Peach"})},
6+
)

tests/FetchAPI/URLSearchParams__test.js

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

tests/FetchAPI/URLSearchParams__test.res

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
let params1 = URLSearchParams.make3(~init="foo=1&bar=2")
1+
let params1 = URLSearchParams.fromString("foo=1&bar=2")
22
params1->URLSearchParams.keys->Iterator.toArray->Array.forEach(Console.log)
33

4-
let params2 = URLSearchParams.make3(~init="?foo=1&bar=b")
4+
let params2 = URLSearchParams.fromKeyValueArray([("foo", "1"), ("bar", "b")])
55
params2->URLSearchParams.values->Iterator.toArray->Array.forEach(Console.log)
66

7-
let params3 = URLSearchParams.make3(~init="?foo=1&bar=b")
7+
let params3 = URLSearchParams.fromDict(dict{"foo": "1", "bar": "b"})
88
params3
99
->URLSearchParams.entries
1010
->Iterator.toArray

tests/Global__test.res

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ let response2 = await fetch(
1616
)
1717

1818
let response3 = await fetch_withRequest(
19-
Request.make2(~input="https://rescript-lang.org/"),
19+
Request.fromURL("https://rescript-lang.org/"),
2020
~init={
2121
method: "POST",
2222
headers: HeadersInit.fromDict(

0 commit comments

Comments
 (0)