Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/CanvasAPI/CanvasPattern.res
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
module Types = CanvasTypes

type t = Types.canvasPattern = {...Types.canvasPattern}
type domMatrix2DInit = DOMTypes.domMatrix2DInit = {...DOMTypes.domMatrix2DInit}

/**
Sets the transformation matrix that will be used when rendering the pattern during a fill or stroke painting operation.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasPattern/setTransform)
*/
@send
external setTransform: (t, ~transform: DOMTypes.domMatrix2DInit=?) => unit = "setTransform"
external setTransform: (t, ~transform: domMatrix2DInit=?) => unit = "setTransform"

let isInstanceOf = (_: 't): bool => %raw(`param instanceof CanvasPattern`)
3 changes: 1 addition & 2 deletions src/CanvasAPI/OffscreenCanvas.res
Original file line number Diff line number Diff line change
Expand Up @@ -95,5 +95,4 @@ The argument, if provided, is a dictionary that controls the encoding options of
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/convertToBlob)
*/
@send
external convertToBlob: (t, ~options: imageEncodeOptions=?) => promise<FileTypes.blob> =
"convertToBlob"
external convertToBlob: (t, ~options: imageEncodeOptions=?) => promise<Blob.t> = "convertToBlob"
3 changes: 2 additions & 1 deletion src/CanvasAPI/Path2D.res
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
module Types = CanvasTypes

type t = Types.path2D = {...Types.path2D}
type domMatrix2DInit = DOMTypes.domMatrix2DInit = {...DOMTypes.domMatrix2DInit}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Path2D)
Expand Down Expand Up @@ -114,4 +115,4 @@ Adds to the path the path given by the argument.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Path2D/addPath)
*/
@send
external addPath: (t, ~path: t, ~transform: DOMTypes.domMatrix2DInit=?) => unit = "addPath"
external addPath: (t, ~path: t, ~transform: domMatrix2DInit=?) => unit = "addPath"
2 changes: 2 additions & 0 deletions src/DOMAPI/HTMLFormElement.res
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
open DOMTypes

type t = htmlFormElement = {...htmlFormElement}

include HTMLElement.Impl({type t = htmlFormElement})

/**
Expand Down
10 changes: 5 additions & 5 deletions src/FetchAPI/BodyInit.res
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,24 @@ external fromDataView: DataView.t => t = "%identity"
/**
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
*/
external fromBlob: FileTypes.blob => t = "%identity"
external fromBlob: Blob.t => t = "%identity"

/**
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
*/
external fromFile: FileTypes.file => t = "%identity"
external fromFile: File.t => t = "%identity"

/**
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
*/
external fromURLSearchParams: URLTypes.urlSearchParams => t = "%identity"
external fromURLSearchParams: URLSearchParams.t => t = "%identity"

/**
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
*/
external fromFormData: Types.formData => t = "%identity"
external fromFormData: FormData.t => t = "%identity"

/**
[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_a_body)
*/
external fromReadableStream: FileTypes.readableStream<'t> => t = "%identity"
external fromReadableStream: ReadableStream.t<'t> => t = "%identity"
13 changes: 6 additions & 7 deletions src/FetchAPI/FormData.res
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ module Types = FetchTypes
*/
@new
type t = Types.formData = {...Types.formData}
type formDataEntryValue = Types.formDataEntryValue
type formDataEntryValue = FormDataEntryValue.t
type htmlFormElement = HTMLFormElement.t
type htmlElement = HTMLElement.t

external make: (~form: DOMTypes.htmlFormElement=?, ~submitter: DOMTypes.htmlElement=?) => t =
"FormData"
external make: (~form: htmlFormElement=?, ~submitter: htmlElement=?) => t = "FormData"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FormData/append)
Expand All @@ -20,8 +21,7 @@ external append: (t, ~name: string, ~value: string) => unit = "append"
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FormData/append)
*/
@send
external appendBlob: (t, ~name: string, ~blobValue: FileTypes.blob, ~filename: string=?) => unit =
"append"
external appendBlob: (t, ~name: string, ~blobValue: Blob.t, ~filename: string=?) => unit = "append"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FormData/delete)
Expand Down Expand Up @@ -69,5 +69,4 @@ external set: (t, ~name: string, ~value: string) => unit = "set"
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FormData/set)
*/
@send
external setBlob: (t, ~name: string, ~blobValue: FileTypes.blob, ~filename: string=?) => unit =
"set"
external setBlob: (t, ~name: string, ~blobValue: Blob.t, ~filename: string=?) => unit = "set"
4 changes: 2 additions & 2 deletions src/FetchAPI/FormDataEntryValue.res
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ module Types = FetchTypes
type t = Types.formDataEntryValue

external fromString: string => t = "%identity"
external fromFile: FileTypes.file => t = "%identity"
external fromFile: File.t => t = "%identity"

/**
Represents a decoded version of the abstract `formDataEntryValue` type.
A FormData entry value is either a string or a File.
*/
type decoded =
| String(string)
| File(FileTypes.file)
| File(File.t)

let decode = (value: t): decoded => {
if File.isInstanceOf(value) {
Expand Down
8 changes: 4 additions & 4 deletions src/FetchAPI/Request.res
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ module Types = FetchTypes

type t = Types.request = {...Types.request}
type requestInit = Types.requestInit = {...Types.requestInit}
type bodyInit = Types.bodyInit
type headersInit = Types.headersInit
type bodyInit = BodyInit.t
type headersInit = HeadersInit.t

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request)
Expand All @@ -27,7 +27,7 @@ external arrayBuffer: t => promise<ArrayBuffer.t> = "arrayBuffer"
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request/blob)
*/
@send
external blob: t => promise<FileTypes.blob> = "blob"
external blob: t => promise<Blob.t> = "blob"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request/bytes)
Expand All @@ -39,7 +39,7 @@ external bytes: t => promise<array<int>> = "bytes"
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request/formData)
*/
@send
external formData: t => promise<Types.formData> = "formData"
external formData: t => promise<FormData.t> = "formData"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request/json)
Expand Down
18 changes: 9 additions & 9 deletions src/FetchAPI/Response.res
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ module Types = FetchTypes

type t = Types.response = {...Types.response}
type responseInit = Types.responseInit = {...Types.responseInit}
type bodyInit = Types.bodyInit
type headersInit = Types.headersInit
type bodyInit = BodyInit.t
type headersInit = HeadersInit.t

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
Expand Down Expand Up @@ -39,31 +39,31 @@ external fromDataView: (DataView.t, ~init: responseInit=?) => t = "Response"
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
*/
@new
external fromBlob: (FileTypes.blob, ~init: responseInit=?) => t = "Response"
external fromBlob: (Blob.t, ~init: responseInit=?) => t = "Response"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
*/
@new
external fromFile: (FileTypes.file, ~init: responseInit=?) => t = "Response"
external fromFile: (File.t, ~init: responseInit=?) => t = "Response"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
*/
@new
external fromURLSearchParams: (URLTypes.urlSearchParams, ~init: responseInit=?) => t = "Response"
external fromURLSearchParams: (URLSearchParams.t, ~init: responseInit=?) => t = "Response"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
*/
@new
external fromFormData: (Types.formData, ~init: responseInit=?) => t = "Response"
external fromFormData: (FormData.t, ~init: responseInit=?) => t = "Response"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Response)
*/
@new
external fromReadableStream: (FileTypes.readableStream<'t>, ~init: responseInit=?) => t = "Response"
external fromReadableStream: (ReadableStream.t<'t>, ~init: responseInit=?) => t = "Response"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer)
Expand All @@ -75,7 +75,7 @@ external arrayBuffer: t => promise<ArrayBuffer.t> = "arrayBuffer"
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request/blob)
*/
@send
external blob: t => promise<FileTypes.blob> = "blob"
external blob: t => promise<Blob.t> = "blob"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request/bytes)
Expand All @@ -87,7 +87,7 @@ external bytes: t => promise<array<int>> = "bytes"
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request/formData)
*/
@send
external formData: t => promise<Types.formData> = "formData"
external formData: t => promise<FormData.t> = "formData"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Request/json)
Expand Down
4 changes: 3 additions & 1 deletion src/PushAPI/PushEvent.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
open PushTypes

include ExtendableEvent.Impl({type t = pushEvent})
type t = pushEvent = {...pushEvent}

include ExtendableEvent.Impl({type t = t})
6 changes: 4 additions & 2 deletions src/PushAPI/PushMessageData.res
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
open PushTypes

type t = pushMessageData

/**
The json() method of the PushMessageData interface extracts push message data by parsing it as a JSON string and returning the result.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/PushMessageData/json)
*/
@send
external json: pushMessageData => JSON.t = "json"
external json: t => JSON.t = "json"

/**
The text() method of the PushMessageData interface extracts push message data as a plain text string.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/PushMessageData/text)
*/
@send
external text: pushMessageData => string = "text"
external text: t => string = "text"
11 changes: 6 additions & 5 deletions src/ServiceWorkerAPI/ServiceWorker.res
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
open ServiceWorkerTypes
open ChannelMessagingTypes

include EventTarget.Impl({type t = serviceWorker})
type t = serviceWorker = {...serviceWorker}

include EventTarget.Impl({type t = t})

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/ServiceWorker/postMessage)
*/
@send
external postMessage: (serviceWorker, ~message: JSON.t, ~transfer: array<Dict.t<string>>) => unit =
external postMessage: (t, ~message: JSON.t, ~transfer: array<Dict.t<string>>) => unit =
"postMessage"

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/ServiceWorker/postMessage)
*/
@send
external postMessageWithOptions: (
serviceWorker,
t,
~message: JSON.t,
~options: structuredSerializeOptions=?,
~options: MessagePort.structuredSerializeOptions=?,
) => unit = "postMessage"
4 changes: 2 additions & 2 deletions src/WebSocketsAPI/MessageEvent.res
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ type messageEventInit<'t> = Types.messageEventInit<'t> = {...Types.messageEventI
@new
external make: (~type_: string, ~eventInitDict: messageEventInit<'t>=?) => t<'t> = "MessageEvent"

external asEvent: t<'t> => EventTypes.event = "%identity"
external asEvent: t<'t> => Event.t = "%identity"
/**
Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/composedPath)
*/
@send
external composedPath: t<'t> => array<EventTypes.eventTarget> = "composedPath"
external composedPath: t<'t> => array<EventTarget.t> = "composedPath"

/**
When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object.
Expand Down
2 changes: 1 addition & 1 deletion src/WebSocketsAPI/WebSocket.res
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Transmits data using the WebSocket connection. data can be a string, a Blob, an
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/send)
*/
@send
external sendBlob: (t, FileTypes.blob) => unit = "send"
external sendBlob: (t, Blob.t) => unit = "send"

/**
Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.
Expand Down
24 changes: 13 additions & 11 deletions src/WebWorkersAPI/SharedWorker.res
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
open ChannelMessagingTypes
open WebWorkersTypes

include EventTarget.Impl({type t = sharedWorker})
type t = sharedWorker
type workerType = WebWorkersTypes.workerType
type workerOptions = WebWorkersTypes.workerOptions = {...WebWorkersTypes.workerOptions}

include EventTarget.Impl({type t = t})

/**
`make(string)`
Expand All @@ -10,13 +13,13 @@ The SharedWorker() constructor creates a SharedWorker object that executes the
script at the specified URL. This script must obey the same-origin policy.

```res
let shared: sharedWorker = SharedWorker.make("sharedworker.js")
let shared: SharedWorker.t = SharedWorker.make("sharedworker.js")
```

[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/)
*/
@new
external make: string => sharedWorker = "SharedWorker"
external make: string => t = "SharedWorker"

/**
`makeWithName(string, string)`
Expand All @@ -25,13 +28,13 @@ The SharedWorker() constructor creates a SharedWorker object that executes the
script at the specified URL. This script must obey the same-origin policy.

```res
let shared: sharedWorker = SharedWorker.make("sharedworker.js", "name")
let shared: SharedWorker.t = SharedWorker.makeWithName("sharedworker.js", "name")
```

[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/)
*/
@new
external makeWithName: (string, string) => sharedWorker = "SharedWorker"
external makeWithName: (string, string) => t = "SharedWorker"

/**
`makeWithOptions(string, workerOptions)`
Expand All @@ -40,16 +43,15 @@ The SharedWorker() constructor creates a SharedWorker object that executes the
script at the specified URL. This script must obey the same-origin policy.

```res
let shared: sharedWorker = SharedWorker.makeWithOptions("sharedworker.js", {
let shared: SharedWorker.t = SharedWorker.makeWithOptions("sharedworker.js", {
name: "workerName",
type_: Module
})
```

[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/)
*/
@new
external makeWithOptions: (string, workerOptions) => sharedWorker = "SharedWorker"
external makeWithOptions: (string, workerOptions) => t = "SharedWorker"

/**
`port(sharedWorker)`
Expand All @@ -58,10 +60,10 @@ The port property of the SharedWorker interface returns a MessagePort object
used to communicate and control the shared worker.

```res
let port: WebAPI.ChannelMessagingTypes.messagePort = SharedWorker.port(myWorker)
let port: MessagePort.t = SharedWorker.port(myWorker)
```

[Read more on MDN](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/port)
*/
@get
external port: sharedWorker => messagePort = "port"
external port: t => MessagePort.t = "port"
2 changes: 1 addition & 1 deletion tests/FetchAPI/FormData__test.res
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* This works when your form has an id of "myForm" */
@scope(("document", "forms"))
external myForm: DOMTypes.htmlFormElement = "myForm"
external myForm: HTMLFormElement.t = "myForm"

let formData = FormData.make(~form=myForm)

Expand Down
Loading