Add `has` metamethod to proxies

This change allows proxies to be used with `with` for easier HTML/SVG
generation.
This commit is contained in:
Talia 2021-08-04 17:00:00 +02:00
parent cb7ad57874
commit 59f4ba669f
Signed by: darkwiiplayer
GPG Key ID: 7808674088232B3E
1 changed files with 4 additions and 1 deletions

View File

@ -49,7 +49,10 @@ const node = (name, args, options) => {
return element return element
} }
const nameSpacedProxy = (options={}) => new Proxy(Window, { get: (target, prop, receiver) => { return (...args) => node(prop, args, options) }}) const nameSpacedProxy = (options={}) => new Proxy(Window, {
get: (target, prop, receiver) => { return (...args) => node(prop, args, options) },
has: (target, prop) => true,
})
export const html = nameSpacedProxy({nameFilter: name => name.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()}) export const html = nameSpacedProxy({nameFilter: name => name.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()})
export const svg = nameSpacedProxy({xmlns: "http://www.w3.org/2000/svg"}) export const svg = nameSpacedProxy({xmlns: "http://www.w3.org/2000/svg"})