0.1.2 • Published 5 years ago
@zpnester/bs-pwa v0.1.2
bs-pwa
Various browser APIs for BuckleScript
Install
npm i @zpnester/bs-filereader@^0.3.0
npm i @zpnester/bs-pwa
bsconfig.json
"bs-dependencies": [
"@zpnester/bs-pwa"
]
- Notification
- ServiceWorkerRegistration
- HTMLAudioElement
- HTMLVideoElement
- MediaStream
- MediaStreamTrack
- Client
- WindowClient
- ServiceWorkerGlobalScope
- DedicatedWorkerGlobalScope
- PushManager
- RTCPeerConnection
- RTCDataChannel
- TextDecoder
- Worker
Examples
Video element with ReasonReact 7
open React;
open PWA;
open Belt;
module App = {
[@react.component]
let make = () => {
let videoRef = useRef(Js.Nullable.undefined);
let onPlayClick = _ => {
open HTMLVideoElement;
let video =
videoRef
->Ref.current
->Js.Nullable.toOption
->Option.flatMap(asVideoElement)
->Option.getExn;
video->play |> ignore;
};
let onPauseClick = _ => {
open HTMLVideoElement;
let video =
videoRef
->Ref.current
->Js.Nullable.toOption
->Option.flatMap(asVideoElement)
->Option.getExn;
video->pause;
};
<>
<video
ref={videoRef->ReactDOMRe.Ref.domRef}
src="https://www.w3schools.com/html/mov_bbb.mp4"
/>
<br />
<button onClick=onPlayClick> {string("Play")} </button>
<button onClick=onPauseClick> {string("Pause")} </button>
</>;
};
};
ReactDOMRe.renderToElementWithId(<App />, "app");
Worker
From Window
open PWA;
open Worker;
let worker = Worker.make("doWork.js");
worker->addEventListener(message, e =>
MessageEvent.(
switch (e->data->Js.Json.decodeString) {
| None => ()
| Some(s) => Js.log("Worker said: " ++ s)
}
)
);
worker->postMessage("Hello World");
From Worker
open PWA;
open WorkerPrelude;
open DedicatedWorkerGlobalScope;
self_->addEventListener(message, e =>
PWA_MessageEvent.(self_->postMessage(e->data))
);
0.1.2
5 years ago
0.1.1
5 years ago
0.1.0
5 years ago
0.0.19
5 years ago
0.0.18
5 years ago
0.0.17
5 years ago
0.0.16
5 years ago
0.0.16-beta.0
5 years ago
0.0.15
5 years ago
0.0.14
5 years ago
0.0.13
5 years ago
0.0.12
5 years ago
0.0.11
5 years ago
0.0.10
5 years ago
0.0.9
5 years ago
0.0.8
5 years ago
0.0.7
5 years ago
0.0.6
5 years ago
0.0.5
5 years ago
0.0.4
5 years ago
0.0.3
5 years ago
0.0.2
5 years ago
0.0.1
5 years ago
0.0.0
5 years ago