Factor out some html helpers
This commit is contained in:
parent
d106823e19
commit
8bdd3158ea
2 changed files with 26 additions and 7 deletions
lib
22
lib/html.ts
Normal file
22
lib/html.ts
Normal file
|
@ -0,0 +1,22 @@
|
|||
export function h<Name extends keyof HTMLElementTagNameMap>(
|
||||
name: Name,
|
||||
props: Partial<HTMLElementTagNameMap[Name]>,
|
||||
...children: Node[]
|
||||
): HTMLElementTagNameMap[Name] {
|
||||
const element = Object.assign(document.createElement(name), props);
|
||||
element.append(...children);
|
||||
return element;
|
||||
}
|
||||
|
||||
export function canvas2d(
|
||||
props: Partial<HTMLCanvasElement>
|
||||
): [HTMLCanvasElement, CanvasRenderingContext2D] {
|
||||
const canvas = h("canvas", props);
|
||||
|
||||
const cx = canvas.getContext("2d");
|
||||
if (!cx) {
|
||||
throw new Error("2D rendering context not supported");
|
||||
}
|
||||
|
||||
return [canvas, cx];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue