Socket
Socket
Sign inDemoInstall

mithril-node-render

Package Overview
Dependencies
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mithril-node-render - npm Package Compare versions

Comparing version 0.1.1 to 0.1.2

64

index.js

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

'onclick',
'onmouseout'
];

@@ -16,2 +17,42 @@

function camelToDash(str) {
return str.replace(/\W+/g, '-')
.replace(/([a-z\d])([A-Z])/g, '$1-$2');
}
function createAttrString(attrs) {
if (!Object.keys(attrs).length) {
return '';
}
return ' ' + Object.keys(attrs).map(function(name) {
if (omitAttrs.indexOf(name) >= 0) {
return '';
}
if (name === 'style') {
var styles = attrs.style;
return 'style="' + Object.keys(styles).map(function(property) {
return [camelToDash(property).toLowerCase(), styles[property]].join(':');
}).join(';') + '"';
}
return (name === 'className' ? 'class' : name) + '="' + attrs[name] + '"';
}).join(' ');
}
function createTrustedContent(view) {
return Object.keys(view).map(function(key) {
if (key === '$trusted') {
return '';
}
return view[key];
}).join('');
}
function createChildrenContent(view) {
if(!view.children || !view.children.length) {
return '';
}
return render(view.children);
}
function render(view) {

@@ -31,24 +72,7 @@ if (!view) {

if (view.$trusted) {
return Object.keys(view).map(function(key) {
if (key === '$trusted') {
return '';
}
return view[key];
}).join('');
return createTrustedContent(view);
}
var attrString = '';
if (view.attrs) {
attrString = Object.keys(view.attrs).map(function(name) {
if (omitAttrs.indexOf(name) >= 0) {
return '';
}
return (name === 'className' ? 'class' : name) + '="' + view.attrs[name] + '"';
}).join(' ');
attrString = attrString ? ' ' + attrString : '';
}
return [
'<', view.tag, attrString, '>',
(view.children ? render(view.children) : ''),
'<', view.tag, createAttrString(view.attrs), '>',
createChildrenContent(view),
'</', view.tag, '>',

@@ -55,0 +79,0 @@ ].join('');

{
"name": "mithril-node-render",
"version": "0.1.1",
"version": "0.1.2",
"description": "Node rending of mithril views",

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

@@ -13,8 +13,14 @@ 'use strict';

'data-foo': 'bar',
style: 'color: pink'
})), '<span data-foo="bar" style="color: pink"></span>', 'should render attributes');
selected: 'selected'
})), '<span data-foo="bar" selected="selected"></span>', 'should render attributes');
t.equal(render(m('ul', 'huhu')), '<ul>huhu</ul>', 'should render string');
t.equal(render([m('span'), m('div')]), '<span></span><div></div>', 'should render arrays');
t.equal(render(m('span', m('div'))), '<span><div></div></span>', 'should render children');
t.equal(render(m('span', {
style: {
paddingLeft: '10px',
color: 'red'
}
})), '<span style="padding-left:10px;color:red"></span>', 'should render children');
t.end();
});
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