diff options
author | metamuffin <metamuffin@disroot.org> | 2023-10-01 11:53:27 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-10-01 11:53:27 +0200 |
commit | 18cc95742b9e43f1739385ce3bb673c7095a66a1 (patch) | |
tree | 82502c65932730a6e98a69430b69ae33202f1909 | |
parent | 4c6a395de093dce24c688276a8b04a93093fd118 (diff) | |
download | jshelper-18cc95742b9e43f1739385ce3bb673c7095a66a1.tar jshelper-18cc95742b9e43f1739385ce3bb673c7095a66a1.tar.bz2 jshelper-18cc95742b9e43f1739385ce3bb673c7095a66a1.tar.zst |
specialize EEl
-rw-r--r-- | readme.md | 2 | ||||
-rw-r--r-- | src/element.ts | 22 |
2 files changed, 22 insertions, 2 deletions
@@ -1,4 +1,4 @@ # jshelper (name to change) -I notices that i started to duplicated some basic javascript helper for +I noticed that I started to duplicated some basic javascript helper for interfacing with the DOM across many of my projects. This library fixes that. diff --git a/src/element.ts b/src/element.ts index 9880748..bee4ddb 100644 --- a/src/element.ts +++ b/src/element.ts @@ -27,7 +27,27 @@ function apply_opts<E extends HTMLElement>(e: E, o: Opts<E>): (() => unknown) | if (typeof o?.class == "object") e.classList.add(...o.class) } -type EEl<K extends keyof HTMLElementTagNameMap> = string | HTMLElement | Opts<HTMLElementTagNameMap[K]> | OVar<Opts<HTMLElementTagNameMap[K]>> | OVar<string> | OVar<HTMLElement> | OVar<HTMLUListElement> | undefined; +type EEl<K extends keyof HTMLElementTagNameMap> = string + | HTMLElement + | Opts<HTMLElementTagNameMap[K]> + | OVar<Opts<HTMLElementTagNameMap[K]>> + | OVar<string> + | OVar<HTMLElement> + | OVar<HTMLUListElement> // is this possible with dudplication? + | OVar<HTMLOListElement> + | OVar<HTMLInputElement> + | OVar<HTMLPreElement> + | OVar<HTMLCanvasElement> + | OVar<HTMLVideoElement> + | OVar<HTMLImageElement> + | OVar<HTMLDetailsElement> + | OVar<HTMLSpanElement> + | OVar<HTMLSelectElement> + | OVar<HTMLLabelElement> + | OVar<HTMLButtonElement> + | OVar<HTMLDivElement> + | OVar<HTMLParagraphElement> + | undefined; export function e<K extends keyof HTMLElementTagNameMap>(name: K, ...children: EEl<K>[]): HTMLElementTagNameMap[K] { const el = document.createElement(name) |