Socket
Socket
Sign inDemoInstall

hyperx

Package Overview
Dependencies
Maintainers
7
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hyperx - npm Package Compare versions

Comparing version 2.0.0 to 2.0.1

37

index.js

@@ -7,2 +7,3 @@ var attrToProp = require('hyperscript-attribute-to-property')

var ATTR_VALUE_SQ = 9, ATTR_VALUE_DQ = 10
var ATTR_EQ = 11, ATTR_BREAK = 12

@@ -60,3 +61,3 @@ module.exports = function (h, opts) {

if (typeof parts[i][2] === 'object' && !key) {
for(copyKey in parts[i][2]) {
for (copyKey in parts[i][2]) {
if (parts[i][2].hasOwnProperty(copyKey) && !cur[1][copyKey]) {

@@ -71,11 +72,18 @@ cur[1][copyKey] = parts[i][2][copyKey]

}
if (parts[i][0] === ATTR_EQ) i++
var j = i
for (; i < parts.length; i++) {
if (parts[i][0] === ATTR_VALUE) {
if (parts[i][0] === ATTR_VALUE || parts[i][0] === ATTR_KEY) {
if (!cur[1][key]) cur[1][key] = strfn(parts[i][1])
else cur[1][key] = concat(cur[1][key], parts[i][1])
} else if (parts[i][0] === VAR && parts[i][1] === ATTR_VALUE) {
} else if (parts[i][0] === VAR
&& (parts[i][1] === ATTR_VALUE || parts[i][1] === ATTR_KEY)) {
if (!cur[1][key]) cur[1][key] = strfn(parts[i][2])
else cur[1][key] = concat(cur[1][key], parts[i][2])
} else {
i--
if (key.length && !cur[1][key] && parts[i][0] === CLOSE && i === j) {
// https://html.spec.whatwg.org/multipage/infrastructure.html#boolean-attributes
// empty string is falsy, not well behaved value in browser
cur[1][key] = key.toLowerCase()
}
break

@@ -106,2 +114,4 @@ }

cur[2].push(p[1])
} else if (s === ATTR_EQ || s === ATTR_BREAK) {
// no-op
} else {

@@ -122,2 +132,6 @@ throw new Error('unhandled: ' + s)

}
if (Array.isArray(tree[2][0]) && typeof tree[2][0][0] === 'string'
&& Array.isArray(tree[2][0][2])) {
tree[2][0] = h(tree[2][0][0], tree[2][0][1], tree[2][0][2])
}
return tree[2][0]

@@ -156,2 +170,4 @@

reg = c
} else if (state === ATTR && /\s/.test(c)) {
res.push([ATTR_BREAK])
} else if (state === ATTR_KEY && /\s/.test(c)) {

@@ -162,3 +178,3 @@ res.push([ATTR_KEY,reg])

} else if (state === ATTR_KEY && c === '=') {
res.push([ATTR_KEY,reg])
res.push([ATTR_KEY,reg],[ATTR_EQ])
reg = ''

@@ -169,6 +185,7 @@ state = ATTR_VALUE_W

} else if (state === ATTR_KEY_W && c === '=') {
res.push([ATTR_EQ])
state = ATTR_VALUE_W
} else if (state === ATTR_KEY_W && !/\s/.test(c)) {
} else if ((state === ATTR_KEY_W || state === ATTR) && !/\s/.test(c)) {
res.push([ATTR_EQ])
state = ATTR
i--
} else if (state === ATTR_VALUE_W && c === '"') {

@@ -179,7 +196,7 @@ state = ATTR_VALUE_DQ

} else if (state === ATTR_VALUE_DQ && c === '"') {
res.push([ATTR_VALUE,reg])
res.push([ATTR_VALUE,reg],[ATTR_BREAK])
reg = ''
state = ATTR
} else if (state === ATTR_VALUE_SQ && c === "'") {
res.push([ATTR_VALUE,reg])
res.push([ATTR_VALUE,reg],[ATTR_BREAK])
reg = ''

@@ -191,3 +208,3 @@ state = ATTR

} else if (state === ATTR_VALUE && /\s/.test(c)) {
res.push([ATTR_VALUE,reg])
res.push([ATTR_BREAK],[ATTR_VALUE,reg])
reg = ''

@@ -194,0 +211,0 @@ state = ATTR

{
"name": "hyperx",
"version": "2.0.0",
"version": "2.0.1",
"description": "tagged template string virtual dom builder",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -11,1 +11,7 @@ var test = require('tape')

})
test('boolean attribute', function (t) {
var tree = hx`<video autoplay></video>`
t.equal(vdom.create(tree).toString(), '<video autoplay="autoplay"></video>')
t.end()
})

@@ -38,2 +38,10 @@ var test = require('tape')

test('boolean key', function (t) {
var key = 'checked'
var tree = hx`<input type="checkbox" ${key}>`
t.equal(vdom.create(tree).toString(),
'<input type="checkbox" checked="checked" />')
t.end()
})
test('multiple keys', function (t) {

@@ -40,0 +48,0 @@ var props = {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc