@chasemoskal/magical
Version:
web toolkit for lit apps
25 lines (23 loc) • 515 B
text/typescript
export const attr = (element: HTMLElement) => ({
string: new Proxy({}, {
get(target, key: string) {
return element.getAttribute(key)
},
set(target, key: string, value: string) {
element.setAttribute(key, value.toString())
return true
},
}),
boolean: new Proxy({}, {
get(target, key: string) {
return element.hasAttribute(key)
},
set(target, key: string, value: any) {
if (value)
element.setAttribute(key, "")
else
element.removeAttribute(key)
return true
},
}),
})