filestash/public/lib/dom.js
2023-08-14 01:07:53 +10:00

22 lines
652 B
JavaScript

export function qs($node, selector) {
if (!$node) throw new Error("undefined node");
const $target = $node.querySelector(selector);
if (!$target) throw new Error(`undefined node for selector '${selector}'`);
return $target;
}
export function qsa($node, selector) {
if (!$node) throw new Error("undefined node");
return $node.querySelectorAll(selector);
}
export function safe(str, ...escapeChars) {
if (typeof str !== "string") return str;
const $div = document.createElement("div");
escapeChars.forEach((c) => {
str = str.replaceAll(c, "\\"+c);
});
$div.textContent = str;
return $div.innerHTML;
}