handle-node
Simple callback delegator based on DOM Node type.
Provides an alternative to switches, numeric constant-based delegation, and
DOM NodeIterator
s or TreeWalker
s.
Installation
With ESM bundler (e.g., Rollup)
;
Node
npm install handle-node
const handleNode = ;
Browser (any)
Browser (ESM - modern browsers only)
Usage
Supply a node followed by a handler object whose all optional properties
(human-readable Node type names) should be set to a callback which will
be passed the supplied Node and, always as the last argument, a reference
to the object on which the callbacks exist. The return value will be
undefined
if a handler is missing, but otherwise will be the result of
invoking the callback which corresponds to the supplied node's type.
Here is a demonstration reimplementing textContent
(if only element
and text types are known to be present):
const textContent = ;
Other arguments can also be passed in after node
and before the
handler object, and these will also be supplied to the callbacks:
const textContent = ;
API
The handler object can take the following optional properties:
element
attribute
text
cdata
entityReference
entity
processingInstruction
comment
document
documentType
documentFragment
notation