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}