Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
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’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.