Description
We have this in the Core
module.
@val external window: Dom.window = "window"
@val external document: Dom.document = "document"
@val external globalThis: {..} = "globalThis"
(ref: https://github.com/rescript-association/rescript-core/blob/22642ea/src/RescriptCore.res#L47-L49)
However, using window
and document
is not safe because
- They are only available on the HTML DOM. @cknitt suggest to use option for it. Add
Js.globalThis
object binding rescript#6909 (comment) - Their scope isn't specified explicitly to
globalThis
.
I also think that the compiler and the Core should not promote specific hosts. window
& document
are part of the HTML and has nothing to do with Node.js. global
is Node.js specific and has nothing to do with browsers.
IMO Core should delegate bindings to third-parties (e.g. rescript-webapi) and keep the representation in JavaScript itself.
Metadata
Metadata
Assignees
Labels
No labels