Packages
plinth
0.10.0
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/shadow_ffi.mjs
import { Result$Ok, Result$Error } from "./gleam.mjs";
import { Mode$isOpen } from "./plinth/browser/shadow.mjs"
export function cast(raw) {
if (raw instanceof ShadowRoot) {
return Result$Ok(raw);
} else {
return Result$Error();
}
}
export function appendChild(root, element) {
root.appendChild(element)
}
export function attachShadow(element, mode) {
const shadowMode = Mode$isOpen(mode) ? "open" : "closed"
return element.attachShadow({ mode: shadowMode })
}
export function shadowRoot(element) {
let shadowRoot = element.shadowRoot;
if (shadowRoot) {
return Result$Ok(shadowRoot);
}
return Result$Error();
}
export function host(root) {
return root.host;
}
export function querySelector(shadowRoot, selector) {
let element = shadowRoot.querySelector(selector);
if (element) {
return Result$Ok(element);
}
return Result$Error();
}
export function querySelectorAll(shadowRoot, selector) {
return shadowRoot.querySelectorAll(selector);
}