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
5 changes: 5 additions & 0 deletions scripts/check-consumer.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,11 @@ const checkConsumers = async () => {
if (!negativeOnly) {
const scenarios = [
{ name: "default", fixture: "scripts/consumer-default.res", features: null },
{
name: "concrete public types",
fixture: "scripts/consumer-concrete-types.res",
features: null,
},
{
name: "Fetch-only",
fixture: "scripts/consumer-fetch.res",
Expand Down
106 changes: 106 additions & 0 deletions scripts/consumer-concrete-types.res
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
let path2D: WebAPI.Path2D.t => WebAPI.Path2D.t = value => value
let fontFace: WebAPI.FontFace.t => WebAPI.FontFace.t = value => value
let domMatrix: WebAPI.DOMMatrix.t => WebAPI.DOMMatrix.t = value => value
let domMatrixReadOnly: WebAPI.DOMMatrixReadOnly.t => WebAPI.DOMMatrixReadOnly.t = value => value
let domPoint: WebAPI.DOMPoint.t => WebAPI.DOMPoint.t = value => value
let domPointReadOnly: WebAPI.DOMPointReadOnly.t => WebAPI.DOMPointReadOnly.t = value => value
let domRect: WebAPI.DOMRect.t => WebAPI.DOMRect.t = value => value
let domRectReadOnly: WebAPI.DOMRectReadOnly.t => WebAPI.DOMRectReadOnly.t = value => value
let domRectList: WebAPI.DOMRectList.t => WebAPI.DOMRectList.t = value => value
let domTokenList: WebAPI.DOMTokenList.t => WebAPI.DOMTokenList.t = value => value
let caretPosition: WebAPI.CaretPosition.t => WebAPI.CaretPosition.t = value => value
let namedNodeMap: WebAPI.NamedNodeMap.t => WebAPI.NamedNodeMap.t = value => value
let nodeList: WebAPI.NodeList.t<'node> => WebAPI.NodeList.t<'node> = value => value
let documentTimeline: WebAPI.DocumentTimeline.t => WebAPI.DocumentTimeline.t = value => value
let cssRuleList: WebAPI.CSSRuleList.t => WebAPI.CSSRuleList.t = value => value
let canvasGradient: WebAPI.CanvasGradient.t => WebAPI.CanvasGradient.t = value => value
let canvasPattern: WebAPI.CanvasPattern.t => WebAPI.CanvasPattern.t = value => value
let canvasRenderingContext2D: WebAPI.CanvasRenderingContext2D.t => WebAPI.CanvasRenderingContext2D.t = value =>
value
let imageBitmap: WebAPI.ImageBitmap.t => WebAPI.ImageBitmap.t = value => value
let imageBitmapRenderingContext: WebAPI.ImageBitmapRenderingContext.t => WebAPI.ImageBitmapRenderingContext.t = value =>
value
let imageData: WebAPI.ImageData.t => WebAPI.ImageData.t = value => value
let videoColorSpace: WebAPI.VideoColorSpace.t => WebAPI.VideoColorSpace.t = value => value
let videoFrame: WebAPI.VideoFrame.t => WebAPI.VideoFrame.t = value => value
let abortController: WebAPI.AbortController.t => WebAPI.AbortController.t = value => value
let headers: WebAPI.Headers.t = WebAPI.Headers.make()
let pushManager: WebAPI.PushManager.t => WebAPI.PushManager.t = value => value
let pushSubscription: WebAPI.PushSubscription.t => WebAPI.PushSubscription.t = value => value
let clipboardItem: WebAPI.ClipboardItem.t => WebAPI.ClipboardItem.t = value => value
let credentialsContainer: WebAPI.CredentialsContainer.t => WebAPI.CredentialsContainer.t = value =>
value
let permissions: WebAPI.Permissions.t => WebAPI.Permissions.t = value => value
let customElementRegistry: WebAPI.CustomElementRegistry.t => WebAPI.CustomElementRegistry.t = value =>
value
let history: WebAPI.History.t => WebAPI.History.t = value => value
let idleDeadline: WebAPI.IdleDeadline.t => WebAPI.IdleDeadline.t = value => value
let gamepadHapticActuator: WebAPI.GamepadHapticActuator.t => WebAPI.GamepadHapticActuator.t = value =>
value
let geolocation: WebAPI.Geolocation.t => WebAPI.Geolocation.t = value => value
let geolocationCoordinates: WebAPI.GeolocationCoordinates.t => WebAPI.GeolocationCoordinates.t = value =>
value
let geolocationPosition: WebAPI.GeolocationPosition.t => WebAPI.GeolocationPosition.t = value =>
value
let wakeLock: WebAPI.WakeLock.t => WebAPI.WakeLock.t = value => value
let fileList: WebAPI.FileList.t => WebAPI.FileList.t = value => value
let fileSystemDirectoryEntry: WebAPI.FileSystemDirectoryEntry.t => WebAPI.FileSystemDirectoryEntry.t = value =>
value
let fileSystemDirectoryHandle: WebAPI.FileSystemDirectoryHandle.t => WebAPI.FileSystemDirectoryHandle.t = value =>
value
let fileSystemDirectoryReader: WebAPI.FileSystemDirectoryReader.t => WebAPI.FileSystemDirectoryReader.t = value =>
value
let fileSystemEntry: WebAPI.FileSystemEntry.t => WebAPI.FileSystemEntry.t = value => value
let fileSystemFileHandle: WebAPI.FileSystemFileHandle.t => WebAPI.FileSystemFileHandle.t = value =>
value
let fileSystemHandle: WebAPI.FileSystemHandle.t => WebAPI.FileSystemHandle.t = value => value
let fileSystemWritableFileStream: WebAPI.FileSystemWritableFileStream.t => WebAPI.FileSystemWritableFileStream.t = value =>
value
let writableStream: WebAPI.WritableStream.t<'writer> => WebAPI.WritableStream.t<'writer> = value =>
value
let writableStreamDefaultController: WebAPI.WritableStreamDefaultController.t => WebAPI.WritableStreamDefaultController.t = value =>
value
let lockManager: WebAPI.LockManager.t => WebAPI.LockManager.t = value => value
let cache: WebAPI.Cache.t => WebAPI.Cache.t = value => value
let cacheStorage: WebAPI.CacheStorage.t => WebAPI.CacheStorage.t = value => value
let idbFactory: WebAPI.IDBFactory.t => WebAPI.IDBFactory.t = value => value
let idbIndex: WebAPI.IDBIndex.t => WebAPI.IDBIndex.t = value => value
let idbObjectStore: WebAPI.IDBObjectStore.t => WebAPI.IDBObjectStore.t = value => value
let storage: WebAPI.Storage.t => WebAPI.Storage.t = value => value
let storageManager: WebAPI.StorageManager.t => WebAPI.StorageManager.t = value => value
let intersectionObserver: WebAPI.IntersectionObserver.t => WebAPI.IntersectionObserver.t = value =>
value
let resizeObserver: WebAPI.ResizeObserver.t => WebAPI.ResizeObserver.t = value => value
let mediaCapabilities: WebAPI.MediaCapabilities.t => WebAPI.MediaCapabilities.t = value => value
let mediaKeyStatusMap: WebAPI.MediaKeyStatusMap.t => WebAPI.MediaKeyStatusMap.t = value => value
let mediaKeySystemAccess: WebAPI.MediaKeySystemAccess.t => WebAPI.MediaKeySystemAccess.t = value =>
value
let mediaKeys: WebAPI.MediaKeys.t => WebAPI.MediaKeys.t = value => value
let textTrackCueList: WebAPI.TextTrackCueList.t => WebAPI.TextTrackCueList.t = value => value
let performanceEntry: WebAPI.PerformanceEntry.t => WebAPI.PerformanceEntry.t = value => value
let performanceMark: WebAPI.PerformanceMark.t => WebAPI.PerformanceMark.t = value => value
let clients: WebAPI.Clients.t => WebAPI.Clients.t = value => value
let navigationPreloadManager: WebAPI.NavigationPreloadManager.t => WebAPI.NavigationPreloadManager.t = value =>
value
let dataTransfer: WebAPI.DataTransfer.t => WebAPI.DataTransfer.t = value => value
let dataTransferItem: WebAPI.DataTransferItem.t => WebAPI.DataTransferItem.t = value => value
let dataTransferItemList: WebAPI.DataTransferItemList.t => WebAPI.DataTransferItemList.t = value =>
value
let touch: WebAPI.Touch.t => WebAPI.Touch.t = value => value
let touchList: WebAPI.TouchList.t => WebAPI.TouchList.t = value => value
let url: WebAPI.URL.t => WebAPI.URL.t = value => value
let viewTransition: WebAPI.ViewTransition.t => WebAPI.ViewTransition.t = value => value
let svgGraphicsElement: WebAPI.SVGGraphicsElement.t => WebAPI.SVGGraphicsElement.t = value => value
let svgLength: WebAPI.SVGLength.t => WebAPI.SVGLength.t = value => value
let audioBuffer: WebAPI.AudioBuffer.t => WebAPI.AudioBuffer.t = value => value
let audioParam: WebAPI.AudioParam.t => WebAPI.AudioParam.t = value => value
let audioNode: WebAPI.AudioNode.t => WebAPI.AudioNode.t = value => value
let baseAudioContext: WebAPI.BaseAudioContext.t => WebAPI.BaseAudioContext.t = value => value
let periodicWave: WebAPI.PeriodicWave.t => WebAPI.PeriodicWave.t = value => value
let worklet: WebAPI.Worklet.t => WebAPI.Worklet.t = value => value

let makePublicUrl = () => {
let url: WebAPI.URL.t = WebAPI.URL.make(~url="https://example.invalid")
url.href = "https://example.com"
url.href
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
let imageBitmap: WebAPI.ImageBitmap.t = {width: 1, height: 1}
6 changes: 6 additions & 0 deletions scripts/negative-fixtures.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,12 @@
"features": ["WebAPI.Storage"],
"expectedDiagnostic": "This has type:"
},
{
"name": "private public-module records cannot be constructed",
"fixture": "scripts/fixtures/negative/PrivatePublicModuleRecordCannotBeConstructed.res",
"features": ["WebAPI.Canvas"],
"expectedDiagnostic": "Cannot create values of the"
},
{
"name": "Web Locks callback accepts nullable Lock",
"fixture": "scripts/fixtures/negative/WebLocksRejectsNonNullableCallback.res",
Expand Down
2 changes: 2 additions & 0 deletions src/animation/DocumentTimeline.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = DOM.documentTimeline = private {...DOM.documentTimeline}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentTimeline)
*/
Expand Down
2 changes: 2 additions & 0 deletions src/canvas/CanvasGradient.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = CanvasTypes.canvasGradient = private {...CanvasTypes.canvasGradient}

/**
Adds a color stop with the given color to the gradient at the given offset. 0.0 is the offset at one end of the gradient, 1.0 is the offset at the other end.

Expand Down
2 changes: 2 additions & 0 deletions src/canvas/CanvasPattern.res
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
type domMatrix2DInit = DOM.domMatrix2DInit

type t = CanvasTypes.canvasPattern = private {...CanvasTypes.canvasPattern}

/**
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)
Expand Down
2 changes: 2 additions & 0 deletions src/canvas/CanvasRenderingContext2D.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = DOM.canvasRenderingContext2D

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillStyle)
*/
Expand Down
2 changes: 2 additions & 0 deletions src/canvas/ImageBitmap.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = CanvasTypes.imageBitmap = private {...CanvasTypes.imageBitmap}

/**
Releases imageBitmap's underlying bitmap data.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/ImageBitmap/close)
Expand Down
4 changes: 4 additions & 0 deletions src/canvas/ImageBitmapRenderingContext.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
type t = CanvasTypes.imageBitmapRenderingContext = private {
...CanvasTypes.imageBitmapRenderingContext,
}

/**
Transfers the underlying bitmap data from imageBitmap to context, and the bitmap becomes the contents of the canvas element to which context is bound.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext/transferFromImageBitmap)
Expand Down
2 changes: 2 additions & 0 deletions src/canvas/ImageData.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = DOM.imageData = private {...DOM.imageData}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/ImageData)
*/
Expand Down
2 changes: 2 additions & 0 deletions src/canvas/Path2D.res
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
type domMatrix2DInit = DOM.domMatrix2DInit

type t = CanvasTypes.path2D = private {...CanvasTypes.path2D}

/**
`make()`

Expand Down
2 changes: 2 additions & 0 deletions src/canvas/VideoColorSpace.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = DOM.videoColorSpace = private {...DOM.videoColorSpace}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoColorSpace)
*/
Expand Down
2 changes: 2 additions & 0 deletions src/canvas/VideoFrame.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = DOM.videoFrame = private {...DOM.videoFrame}

/**
`fromHTMLImageElement(~image: HTMLImageElement.t, ~init: videoFrameInit=?)`

Expand Down
1 change: 1 addition & 0 deletions src/core/DOM.res
Original file line number Diff line number Diff line change
Expand Up @@ -596,6 +596,7 @@ type fileList = private {
A collection of Attr objects. Objects inside a NamedNodeMap are not in any particular order, unlike NodeList, although they may be accessed by an index as in an array.
[See NamedNodeMap on MDN](https://developer.mozilla.org/docs/Web/API/NamedNodeMap)
*/
@editor.completeFrom(NamedNodeMap)
type namedNodeMap = private {
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/length)
Expand Down
2 changes: 2 additions & 0 deletions src/css-font-loading/FontFace.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = CssFontLoadingTypes.fontFace = {...CssFontLoadingTypes.fontFace}

/**
`fromString(~family: string, ~source: string, ~descriptors: fontFaceDescriptors=?)`

Expand Down
2 changes: 2 additions & 0 deletions src/cssom/CSSRuleList.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = StyleSheet.cssRuleList = private {...StyleSheet.cssRuleList}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/CSSRuleList/item)
*/
Expand Down
2 changes: 2 additions & 0 deletions src/device/GamepadHapticActuator.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = GamepadTypes.gamepadHapticActuator = private {...GamepadTypes.gamepadHapticActuator}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator/playEffect)
*/
Expand Down
3 changes: 3 additions & 0 deletions src/device/Geolocation.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
@editor.completeFrom(Geolocation)
type t = GeolocationTypes.geolocation = private {...GeolocationTypes.geolocation}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Geolocation/getCurrentPosition)
*/
Expand Down
4 changes: 4 additions & 0 deletions src/device/GeolocationCoordinates.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
type t = GeolocationTypes.geolocationCoordinates = private {
...GeolocationTypes.geolocationCoordinates,
}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/toJSON)
*/
Expand Down
2 changes: 2 additions & 0 deletions src/device/GeolocationPosition.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = GeolocationTypes.geolocationPosition = private {...GeolocationTypes.geolocationPosition}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/GeolocationPosition/toJSON)
*/
Expand Down
2 changes: 1 addition & 1 deletion src/device/GeolocationTypes.res
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
An object able to programmatically obtain the position of the device. It gives Web content access to the location of the device. This allows a Web site or app to offer customized results based on the user's location.
[See WebApiGeolocation on MDN](https://developer.mozilla.org/docs/Web/API/Geolocation)
*/
@editor.completeFrom(WebApiGeolocation)
@editor.completeFrom(Geolocation)
type geolocation = private {}

/**
Expand Down
2 changes: 2 additions & 0 deletions src/device/LockManager.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = WebLocksTypes.lockManager = private {...WebLocksTypes.lockManager}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/LockManager/request)
*/
Expand Down
2 changes: 2 additions & 0 deletions src/device/WakeLock.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = ScreenWakeLockTypes.wakeLock = private {...ScreenWakeLockTypes.wakeLock}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/WakeLock/request)
*/
Expand Down
2 changes: 2 additions & 0 deletions src/dom-nodes/CaretPosition.res
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
type t = DOM.caretPosition = private {...DOM.caretPosition}

@send
external getClientRect: DOM.caretPosition => Null.t<DOM.domRect> = "getClientRect"
3 changes: 3 additions & 0 deletions src/dom-nodes/NamedNodeMap.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
@editor.completeFrom(NamedNodeMap)
type t = DOM.namedNodeMap = private {...DOM.namedNodeMap}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/item)
*/
Expand Down
2 changes: 2 additions & 0 deletions src/dom-nodes/NodeList.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t<'node> = DOM.nodeList<'node> = private {...DOM.nodeList<'node>}

/**
Returns the node with index index from the collection. The nodes are sorted in tree order.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/NodeList/item)
Expand Down
2 changes: 2 additions & 0 deletions src/dom-platform/DOMTokenList.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = DOM.domTokenList = {...DOM.domTokenList}

/**
Returns the token with index index.
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/DOMTokenList/item)
Expand Down
2 changes: 2 additions & 0 deletions src/event/AbortController.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = DOM.abortController = private {...DOM.abortController}

@new
external make: unit => DOM.abortController = "AbortController"

Expand Down
2 changes: 2 additions & 0 deletions src/fetch/Headers.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = FetchTypes.headers = private {...FetchTypes.headers}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/Headers)
*/
Expand Down
6 changes: 2 additions & 4 deletions src/file/BaseFileAndDirectoryEntries.res
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
/**
[See FileSystemEntry on MDN](https://developer.mozilla.org/docs/Web/API/FileSystemEntry)
*/
@editor.completeFrom(BaseFileAndDirectoryEntries.FileSystemEntry)
@editor.completeFrom(FileSystemEntry)
type rec fileSystemEntry = private {
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/isFile)
Expand All @@ -30,9 +30,7 @@ type rec fileSystemEntry = private {
/**
[See FileSystemDirectoryEntry on MDN](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry)
*/
@editor.completeFrom(
BaseFileAndDirectoryEntries.FileSystemDirectoryEntry
) and fileSystemDirectoryEntry = private {
@editor.completeFrom(FileSystemDirectoryEntry) and fileSystemDirectoryEntry = private {
// Base properties from FileSystemEntry
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/isFile)
Expand Down
2 changes: 2 additions & 0 deletions src/file/FileList.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = DOM.fileList = private {...DOM.fileList}

/**
Returns the `WebApiFile` at the specified index.

Expand Down
4 changes: 4 additions & 0 deletions src/file/FileSystemDirectoryEntry.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
type t = BaseFileAndDirectoryEntries.fileSystemDirectoryEntry = private {
...BaseFileAndDirectoryEntries.fileSystemDirectoryEntry,
}

external asFileSystemEntry: FileAndDirectoryEntriesTypes.fileSystemDirectoryEntry => FileAndDirectoryEntriesTypes.fileSystemEntry =
"%identity"
/**
Expand Down
2 changes: 2 additions & 0 deletions src/file/FileSystemDirectoryHandle.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = FileTypes.fileSystemDirectoryHandle = private {...FileTypes.fileSystemDirectoryHandle}

external asFileSystemHandle: FileTypes.fileSystemDirectoryHandle => FileTypes.fileSystemHandle =
"%identity"
/**
Expand Down
4 changes: 4 additions & 0 deletions src/file/FileSystemDirectoryReader.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
type t = FileAndDirectoryEntriesTypes.fileSystemDirectoryReader = private {
...FileAndDirectoryEntriesTypes.fileSystemDirectoryReader,
}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryReader/readEntries)
*/
Expand Down
4 changes: 4 additions & 0 deletions src/file/FileSystemEntry.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
type t = BaseFileAndDirectoryEntries.fileSystemEntry = private {
...BaseFileAndDirectoryEntries.fileSystemEntry,
}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/getParent)
*/
Expand Down
2 changes: 2 additions & 0 deletions src/file/FileSystemFileHandle.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = FileTypes.fileSystemFileHandle = private {...FileTypes.fileSystemFileHandle}

external asFileSystemHandle: FileTypes.fileSystemFileHandle => FileTypes.fileSystemHandle =
"%identity"
/**
Expand Down
2 changes: 2 additions & 0 deletions src/file/FileSystemHandle.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
type t = FileTypes.fileSystemHandle = private {...FileTypes.fileSystemHandle}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/isSameEntry)
*/
Expand Down
4 changes: 4 additions & 0 deletions src/file/FileSystemWritableFileStream.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
type t = FileTypes.fileSystemWritableFileStream = private {
...FileTypes.fileSystemWritableFileStream,
}

external asWritableStream: FileTypes.fileSystemWritableFileStream => FileTypes.writableStream<'w> =
"%identity"
/**
Expand Down
1 change: 1 addition & 0 deletions src/file/FileTypes.res
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ type readableStream<'r> = {
This Streams API interface provides a standard abstraction for writing streaming data to a destination, known as a sink. This object comes with built-in backpressure and queuing.
[See WritableStream on MDN](https://developer.mozilla.org/docs/Web/API/WritableStream)
*/
@editor.completeFrom(WritableStream)
type writableStream<'w> = {
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/WritableStream/locked)
Expand Down
3 changes: 3 additions & 0 deletions src/file/WritableStream.res
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
@editor.completeFrom(WritableStream)
type t<'w> = FileTypes.writableStream<'w> = {...FileTypes.writableStream<'w>}

/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/WritableStream)
*/
Expand Down
Loading
Loading