node and browser bindings for gleam
at master 1.5 kB view raw
1import { Ok, Error } from "./gleam.mjs"; 2 3export function querySelector(query) { 4 let found = document.querySelector(query); 5 if (!found) { 6 return new Error(); 7 } 8 return new Ok(found); 9} 10 11export function querySelectorAll(query) { 12 return Array.from(document.querySelectorAll(query)); 13} 14 15export function addEventListener(type, listener) { 16 return document.addEventListener(type, listener); 17} 18 19export function createElement(tagName) { 20 return document.createElement(tagName); 21} 22 23export function createTextNode(content) { 24 return document.createTextNode(content); 25} 26 27export function body() { 28 return document.body; 29} 30 31export function getElementById(id) { 32 let found = document.getElementById(id); 33 if (!found) { 34 return new Error(); 35 } 36 return new Ok(found); 37} 38 39export function getElementsByTagName(tagName) { 40 return Array.from(document.getElementsByTagName(tagName)); 41} 42 43export function readyState() { 44 return document.readyState; 45} 46 47export function hidden() { 48 return document.hidden; 49} 50 51export function visibilityState() { 52 return document.visibilityState; 53} 54 55export function title() { 56 return document.title; 57} 58 59export function setTitle(title) { 60 document.title = title; 61} 62 63export function fullscreenElement(document) { 64 let found = document.fullscreenElement; 65 if (!found) { 66 return new Error(); 67 } 68 return new Ok(found); 69} 70 71export async function exitFullscreen(document) { 72 try { 73 return new Ok(await document.exitFullscreen()) 74 } catch (error) { 75 return new Error(`${error}`) 76 } 77}