Socket
Socket
Sign inDemoInstall

snabbdom-virtualize

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

snabbdom-virtualize - npm Package Compare versions

Comparing version 0.5.4 to 0.6.0

15

lib/nodes.js

@@ -23,2 +23,5 @@ 'use strict';

var context = options.context || document;
if (!element) {

@@ -29,3 +32,3 @@ return null;

var createdVNodes = [];
var vnode = convertNode(element, createdVNodes);
var vnode = convertNode(element, createdVNodes, context);
options.hooks && options.hooks.create && createdVNodes.forEach(function (node) {

@@ -37,7 +40,8 @@ options.hooks.create(node);

function convertNode(element, createdVNodes) {
function convertNode(element, createdVNodes, context) {
// If our node is a text node, then we only want to set the `text` part of
// the VNode.
if (element.nodeType === Node.TEXT_NODE) {
var _newNode = (0, _utils.createTextVNode)(element.textContent);
if (element.nodeType === context.defaultView.Node.TEXT_NODE) {
var _newNode = (0, _utils.createTextVNode)(element.textContent, context);
_newNode.elm = element;
createdVNodes.push(_newNode);

@@ -92,6 +96,7 @@ return _newNode;

for (var i = 0; i < children.length; i++) {
childNodes.push(convertNode(children.item(i), createdVNodes));
childNodes.push(convertNode(children.item(i), createdVNodes, context));
}
}
var newNode = (0, _h2.default)(element.tagName.toLowerCase(), data, childNodes);
newNode.elm = element;
createdVNodes.push(newNode);

@@ -98,0 +103,0 @@ return newNode;

@@ -10,2 +10,5 @@ 'use strict';

var context = options.context || document;
// If there's nothing here, return null;

@@ -20,3 +23,3 @@ if (!html) {

// Parse the string into the AST and convert to VNodes.
var vnodes = convertNodes((0, _parse2.default)(html), createdVNodes);
var vnodes = convertNodes((0, _parse2.default)(html), createdVNodes, context);

@@ -28,3 +31,3 @@ var res = void 0;

// text (since the AST parser didn't find any well-formed HTML).
res = toVNode({ type: 'text', content: html }, createdVNodes);
res = toVNode({ type: 'text', content: html }, createdVNodes, context);
} else if (vnodes.length === 1) {

@@ -59,6 +62,6 @@ // If there's only one root node, just return it as opposed to an array.

function convertNodes(nodes, createdVNodes) {
function convertNodes(nodes, createdVNodes, context) {
if (nodes instanceof Array && nodes.length > 0) {
return nodes.map(function (node) {
return toVNode(node, createdVNodes);
return toVNode(node, createdVNodes, context);
});

@@ -70,8 +73,8 @@ } else {

function toVNode(node, createdVNodes) {
function toVNode(node, createdVNodes, context) {
var newNode = void 0;
if (node.type === 'text') {
newNode = (0, _utils.createTextVNode)(node.content);
newNode = (0, _utils.createTextVNode)(node.content, context);
} else {
newNode = (0, _h2.default)(node.name, buildVNodeData(node), convertNodes(node.children, createdVNodes));
newNode = (0, _h2.default)(node.name, buildVNodeData(node, context), convertNodes(node.children, createdVNodes, context));
}

@@ -82,3 +85,3 @@ createdVNodes.push(newNode);

function buildVNodeData(node) {
function buildVNodeData(node, context) {
var data = {};

@@ -91,3 +94,3 @@ if (!node.attrs) {

if (name !== 'style' && name !== 'class') {
var val = node.attrs[name];
var val = (0, _utils.unescapeEntities)(node.attrs[name], context);
memo ? memo[name] = val : memo = _defineProperty({}, name, val);

@@ -94,0 +97,0 @@ }

@@ -8,2 +8,3 @@ 'use strict';

exports.transformName = transformName;
exports.unescapeEntities = unescapeEntities;

@@ -16,4 +17,4 @@ var _vnode = require('snabbdom/vnode');

function createTextVNode(text) {
return (0, _vnode2.default)(undefined, undefined, undefined, unescape(text));
function createTextVNode(text, context) {
return (0, _vnode2.default)(undefined, undefined, undefined, unescapeEntities(text, context));
}

@@ -34,5 +35,9 @@

// Element for setting innerHTML for transforming entities.
var el = document.createElement('div');
var el = null;
function unescape(text) {
function unescapeEntities(text, context) {
// Create the element using the context if it doesn't exist.
if (!el) {
el = context.createElement('div');
}
return text.replace(entityRegex, function (entity) {

@@ -39,0 +44,0 @@ el.innerHTML = entity;

{
"name": "snabbdom-virtualize",
"version": "0.5.4",
"version": "0.6.0",
"description": "Library for turning strings and DOM nodes into virtual DOM nodes compatible with snabbdom.",

@@ -19,3 +19,3 @@ "author": {

"watch": "npm run build -- --watch",
"test": "karma start test/karma.conf.js"
"test": "npm run build && karma start test/karma.conf.js && mocha test/nodejs_tests.js"
},

@@ -28,2 +28,3 @@ "main": "lib/index.js",

"chai": "^3.5.0",
"jsdom": "^9.4.2",
"karma": "^0.13.19",

@@ -30,0 +31,0 @@ "karma-chai": "^0.1.0",

@@ -19,3 +19,3 @@ # snabbdom-virtualize [![Build Status](https://travis-ci.org/appcues/snabbdom-virtualize.svg?branch=master)](https://travis-ci.org/appcues/snabbdom-virtualize)

// Require.
let virtualize = require('snabbdom-virtualize');
let virtualize = require('snabbdom-virtualize').default;
```

@@ -22,0 +22,0 @@

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