Packages
plinth
0.8.1
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/window_ffi.mjs
import { Result$Ok, Result$Error } from "./gleam.mjs";
export function self() {
return globalThis;
}
export function alert(message) {
window.alert(message);
}
export function confirm(message) {
return window.confirm(message)
}
export function prompt(message, defaultValue) {
let text = window.prompt(message, defaultValue);
if (text !== null) {
return Result$Ok(text);
} else {
return Result$Error();
}
}
export function addEventListener(type, listener) {
return window.addEventListener(type, listener);
}
export function document(window) {
return window.document;
}
export async function requestWakeLock() {
try {
return Result$Ok(await window.navigator.wakeLock.request("screen"));
} catch (error) {
return Result$Error(error.toString());
}
}
export function location() {
return window.location.href;
}
export function locationOf(w) {
try {
return Result$Ok(w.location.href);
} catch (error) {
return Result$Error(error.toString());
}
}
export function setLocation(w, url) {
w.location.href = url;
}
export function origin() {
return window.location.origin;
}
export function pathname() {
return window.location.pathname;
}
export function reload() {
return window.location.reload();
}
export function reloadOf(w) {
return w.location.reload();
}
export function focus(w) {
return w.focus();
}
export function getHash() {
const hash = window.location.hash;
if (hash == "") {
return Result$Error();
}
return Result$Ok(decodeURIComponent(hash.slice(1)));
}
export function getSearch() {
const search = window.location.search;
if (search == "") {
return Result$Error();
}
return Result$Ok(decodeURIComponent(search.slice(1)));
}
export function innerHeight(w) {
return w.innerHeight;
}
export function innerWidth(w) {
return w.innerWidth;
}
export function outerHeight(w) {
return w.outerHeight;
}
export function outerWidth(w) {
return w.outerWidth;
}
export function screenX(w) {
return w.screenX;
}
export function screenY(w) {
return w.screenY;
}
export function screenTop(w) {
return w.screenTop;
}
export function screenLeft(w) {
return w.screenLeft;
}
export function scrollX(w) {
return w.scrollX;
}
export function scrollY(w) {
return w.scrollY;
}
export function open(url, target, features) {
try {
return Result$Ok(window.open(url, target, features));
} catch (error) {
return Result$Error(error.toString());
}
}
export function close(w) {
w.close();
}
export function closed(w) {
return w.closed;
}
export function queueMicrotask(callback) {
return window.queueMicrotask(callback);
}
export function requestAnimationFrame(callback) {
return window.requestAnimationFrame(callback);
}
export function cancelAnimationFrame(callback) {
return window.cancelAnimationFrame(callback);
}
export function eval_(string) {
try {
return Result$Ok(eval(string));
} catch (error) {
return Result$Error(error.toString());
}
}
export async function import_(string) {
try {
return Result$Ok(await import(string));
} catch (error) {
return Result$Error(error.toString());
}
}