@benev/nubs
Version:
user-input system for web games
25 lines (16 loc) • 455 B
text/typescript
import {dashify} from "@chasemoskal/magical"
import {NubContext} from "../../elements/context/element.js"
const tag = dashify(NubContext.name)
export function setupContextGetter(element: HTMLElement) {
let context: NubContext | undefined
return () => {
if (context)
return context
else {
context = element.closest<NubContext>(tag) ?? undefined
if (!context)
throw new Error(`unable to find <${tag}>`)
return context
}
}
}