preact-render-to-string
Advanced tools
Comparing version 1.0.0 to 1.1.0
@@ -1,2 +0,2 @@ | ||
(function(global,factory){if(typeof define === 'function' && define.amd){define(['exports','module'],factory);}else if(typeof exports !== 'undefined' && typeof module !== 'undefined'){factory(exports,module);}else {var mod={exports:{}};factory(mod.exports,mod);global.index = mod.exports;}})(this,function(exports,module){'use strict';module.exports = renderToString;var NO_RENDER={render:false};var ESC={'<':'<','>':'>','"':'"','&':'&'};var HOP=Object.prototype.hasOwnProperty;var escape=function escape(s){return String(s).replace(/[<>"&]/,function(a){return ESC[a] || a;});};function renderToString(_x){var _again=true;_function: while(_again) {var vnode=_x;_ref = nodeName = attributes = children = props = rendered = i = c = s = _name = undefined;_again = false;var _ref=vnode || EMPTY;var nodeName=_ref.nodeName;var attributes=_ref.attributes;var children=_ref.children;if(!nodeName){return escape(vnode);}if(typeof nodeName === 'function'){var props={children:children},rendered=undefined;for(var i in attributes) {if(HOP.call(attributes,i)){props[i] = attributes[i];}}if(typeof nodeName.prototype.render !== 'function'){rendered = nodeName(props);}else {var c=new nodeName();c.setProps(props,NO_RENDER);rendered = c.render(c.props = props,c.state);}_x = rendered;_again = true;continue _function;}var s='<' + nodeName;for(var _name in attributes) {if(HOP.call(attributes,_name)){s += ' ' + _name + '="' + escape(attributes[_name]) + '"';}}if(children && children.length){s += '>' + children.map(renderToString).join('') + '</' + nodeName + '>';}else {s += ' />';}return s;}};}); | ||
(function(global,factory){if(typeof define === 'function' && define.amd){define(['exports','module'],factory);}else if(typeof exports !== 'undefined' && typeof module !== 'undefined'){factory(exports,module);}else {var mod={exports:{}};factory(mod.exports,mod);global.index = mod.exports;}})(this,function(exports,module){'use strict';var _extends=Object.assign || function(target){for(var i=1;i < arguments.length;i++) {var source=arguments[i];for(var key in source) {if(Object.prototype.hasOwnProperty.call(source,key)){target[key] = source[key];}}}return target;};module.exports = renderToString;var NO_RENDER={render:false};var ESC={'<':'<','>':'>','"':'"','&':'&'};var HOP=Object.prototype.hasOwnProperty;var escape=function escape(s){return String(s).replace(/[<>"&]/,function(a){return ESC[a] || a;});};function renderToString(_x){var _again=true;_function: while(_again) {var vnode=_x;_ref = nodeName = attributes = children = props = rendered = c = s = _name = v = undefined;_again = false;var _ref=vnode || EMPTY;var nodeName=_ref.nodeName;var attributes=_ref.attributes;var children=_ref.children;if(!nodeName){return escape(vnode);}if(typeof nodeName === 'function'){var props=_extends({children:children},attributes),rendered=undefined;if(typeof nodeName.prototype.render !== 'function'){rendered = nodeName(props);}else {var c=new nodeName();c.setProps(props,NO_RENDER);rendered = c.render(c.props = props,c.state);}_x = rendered;_again = true;continue _function;}var s='<' + nodeName;for(var _name in attributes) {if(HOP.call(attributes,_name)){var v=attributes[_name];if(v !== null && v !== undefined){s += ' ' + _name + '="' + escape(v) + '"';}}}s += '>';if(children && children.length){s += children.map(renderToString).join('');}s += '</' + nodeName + '>';return s;}};}); | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "preact-render-to-string", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "Render JSX to an HTML string, with support for Preact components.", | ||
@@ -14,4 +14,5 @@ "main": "dist/index.js", | ||
"preact", | ||
"photon", | ||
"electron" | ||
"render", | ||
"universal", | ||
"isomorphic" | ||
], | ||
@@ -18,0 +19,0 @@ "author": "Jason Miller <jason@developit.ca>", |
@@ -24,7 +24,4 @@ const NO_RENDER = { render: false }; | ||
if (typeof nodeName==='function') { | ||
let props = { children }, | ||
let props = { children, ...attributes }, | ||
rendered; | ||
for (let i in attributes) if (HOP.call(attributes, i)) { | ||
props[i] = attributes[i]; | ||
} | ||
@@ -46,12 +43,16 @@ if (typeof nodeName.prototype.render!=='function') { | ||
let s = `<${nodeName}`; | ||
for (let name in attributes) if (HOP.call(attributes, name)) { | ||
s += ` ${name}="${escape(attributes[name])}"`; | ||
for (let name in attributes) { | ||
if (HOP.call(attributes, name)) { | ||
let v = attributes[name]; | ||
if (v!==null && v!==undefined) { | ||
s += ` ${name}="${escape(v)}"`; | ||
} | ||
} | ||
} | ||
s += '>'; | ||
if (children && children.length) { | ||
s += `>${children.map(renderToString).join('')}</${nodeName}>`; | ||
s += children.map(renderToString).join(''); | ||
} | ||
else { | ||
s += ' />'; | ||
} | ||
s += `</${nodeName}>` | ||
return s; | ||
}; |
@@ -16,2 +16,9 @@ import render from '../src'; | ||
}); | ||
it('should omit null and undefined attributes', () => { | ||
let rendered = render(<div a={null} b={undefined} />), | ||
expected = `<div></div>`; | ||
expect(rendered).to.equal(expected); | ||
}); | ||
}); | ||
@@ -18,0 +25,0 @@ |
Sorry, the diff of this file is not supported yet
11262
163