Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
create-element-ns
Advanced tools
dom createElement hyperscript with svg, namespace and selector support
dom createElement
and createElementNS
hyperscript with svg, namespace and selector support
• Example • Features • API • License
var CE = require('create-element-ns')
var el = CE.el
// selectors or attributes
var divEl1 = el('div.c1#i1[style="color:blue"].c2', {onclick: function() {}})(),
divEl2 = el('div.i1', {style: {color: 'blue'}, props:{className: 'c1 c2', , onclick: function() {}}})(),
divEl3 = el('div.c1#i1[style="color:blue"].c2')({onclick: function() {}}),
// namespace in different ways
var circleEl1 = el('svg:circle')(),
circleEl2 = el.svg('circle')(),
circleEl3 = el('circle[xmlns=http://www.w3.org/2000/svg]')
circleEl3 = el('circle', {xmlns : 'http://www.w3.org/2000/svg'})
// partial application to create multiple modified clones
var pFn = el('p'),
pEl = pFn({textContent: 'x'})
// factory functions can be nested, with or without arrays
var olFn = el('ol', el('li', 'one'), [el('li', 'two'), el('li', 'three')]),
olEl = pFn()
document API
for server and/or testing (e.g. jsdom
)There are many hyperscript modules out there (docrel, create-element-from-selector, domator, makeelement, simpel to name a few) but they either don't support namespaces, like svg or are more oriented to virtual-dom applications.
To create an element factory (function that return a DOM Element):
el(definition [, options][, content])
=> elementFactory
el.svg(definition [, options][, content])
=> elementFactory
elementFactory([optionObject])
=> DOM Element
Parameters and outputs
definition
: a string selector, elementFactory
or DOM Elementoptions
: {properties:{}, attributes:{}, style:{}, dataset:{}}
or {props:{}, attrs:{}, style:{}, dataset:{}}
content
: optional series or array of string, Element
or elementFactory
CE.global.document
injects an external document API like jsdom
. Uses the global document
if not specified.CE.namespaces
adds additional namespace prefix (svg is already defined). E.g. CE.namespaces.xlink: 'http://www.w3.org/1999/xlink'
CE.decorators
to add element decorators E.g. CE.decorators.a = CE.decorators.attributes
FAQs
dom createElement hyperscript with svg, namespace and selector support
The npm package create-element-ns receives a total of 0 weekly downloads. As such, create-element-ns popularity was classified as not popular.
We found that create-element-ns demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.