Packages
plinth
0.9.3
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/broadcast_channel.gleam
import gleam/json.{type Json}
import plinth/browser/message.{type Message}
pub type BroadcastChannel
@external(javascript, "../../broadcast_channel_ffi.mjs", "new_")
pub fn new(channel_name: String) -> Result(BroadcastChannel, String)
@external(javascript, "../../broadcast_channel_ffi.mjs", "postMessage")
pub fn post_message(
channel: BroadcastChannel,
message: Json,
) -> Result(Nil, String)
@external(javascript, "../../broadcast_channel_ffi.mjs", "onMessage")
pub fn on_message(worker: BroadcastChannel, handle: fn(Message) -> Nil) -> Nil