Packages
plinth
0.1.13
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.0
0.1.13
0.1.12
0.1.11
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Bindings to Node.js and browser platform APIs
Current section
Files
Jump to
Current section
Files
src/plinth/browser/window.gleam
import gleam/dynamic
import gleam/javascript/promise.{type Promise}
import plinth/browser/event.{type Event}
pub type Window
@external(javascript, "../../window_ffi.mjs", "self")
pub fn self() -> Window
@external(javascript, "../../window_ffi.mjs", "alert")
pub fn alert(a: String) -> Nil
@external(javascript, "../../window_ffi.mjs", "addEventListener")
pub fn add_event_listener(type_: String, listener: fn(Event) -> Nil) -> Nil
pub type WakeLockSentinal
// part of the navigator API as navigators are not valuable to pass around moved to window module
@external(javascript, "../../window_ffi.mjs", "requestWakeLock")
pub fn request_wake_lock() -> Promise(Result(WakeLockSentinal, Nil))
@external(javascript, "../../window_ffi.mjs", "location")
pub fn location() -> String
@external(javascript, "../../window_ffi.mjs", "locationOf")
pub fn location_of(window: Window) -> String
// reload exists on the location object but exposed at top level here
@external(javascript, "../../window_ffi.mjs", "reload")
pub fn reload() -> Nil
// I'm not sure how much value there is in specific hash/search function
@external(javascript, "../../window_ffi.mjs", "getHash")
pub fn get_hash() -> Result(String, Nil)
@external(javascript, "../../window_ffi.mjs", "getSearch")
pub fn get_search() -> Result(String, Nil)
@external(javascript, "../../window_ffi.mjs", "innerHeight")
pub fn inner_height(window: Window) -> Int
@external(javascript, "../../window_ffi.mjs", "innerWidth")
pub fn inner_width(window: Window) -> Int
@external(javascript, "../../window_ffi.mjs", "outerHeight")
pub fn outer_height(window: Window) -> Int
@external(javascript, "../../window_ffi.mjs", "outerWidth")
pub fn outer_width(window: Window) -> Int
@external(javascript, "../../window_ffi.mjs", "open")
pub fn open(
url: String,
name: String,
features: String,
) -> Result(Window, String)
@external(javascript, "../../window_ffi.mjs", "close")
pub fn close(window: Window) -> Bool
@external(javascript, "../../window_ffi.mjs", "closed")
pub fn closed(window: Window) -> Bool
// A long integer value, the request ID, that uniquely identifies the entry in the callback list. This is a non-zero value, but you may not make any other assumptions about its value. You can pass this value to window.cancelAnimationFrame() to cancel the refresh callback request.
pub type RequestID
@external(javascript, "../../window_ffi.mjs", "requestAnimationFrame")
pub fn request_animation_frame(callback: fn() -> Nil) -> RequestID
@external(javascript, "../../window_ffi.mjs", "cancelAnimationFrame")
pub fn cancel_animation_frame(request_id: RequestID) -> Nil
@external(javascript, "../../window_ffi.mjs", "eval_")
pub fn eval(source: String) -> Result(dynamic.Dynamic, String)