aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-10-01 11:53:27 +0200
committermetamuffin <metamuffin@disroot.org>2023-10-01 11:53:27 +0200
commit18cc95742b9e43f1739385ce3bb673c7095a66a1 (patch)
tree82502c65932730a6e98a69430b69ae33202f1909
parent4c6a395de093dce24c688276a8b04a93093fd118 (diff)
downloadjshelper-18cc95742b9e43f1739385ce3bb673c7095a66a1.tar
jshelper-18cc95742b9e43f1739385ce3bb673c7095a66a1.tar.bz2
jshelper-18cc95742b9e43f1739385ce3bb673c7095a66a1.tar.zst
specialize EEl
-rw-r--r--readme.md2
-rw-r--r--src/element.ts22
2 files changed, 22 insertions, 2 deletions
diff --git a/readme.md b/readme.md
index 38b4fc3..4d129ec 100644
--- a/readme.md
+++ b/readme.md
@@ -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)