diff --git a/dist/index.es6.js b/dist/index.es6.js index b70a657..77f626b 100644 --- a/dist/index.es6.js +++ b/dist/index.es6.js @@ -56,10 +56,10 @@ var mapObject = function (obj, fn) { return Object.keys(obj).map( {} ); }; -var deepifyKeys = function (obj) { return mapObject(obj, +var deepifyKeys = function (obj, modules) { return mapObject(obj, function (key, val) { var dashIndex = key.indexOf('-'); - if (dashIndex > -1) { + if (dashIndex > -1 && modules[key.slice(0, dashIndex)] !== undefined) { var moduleData = {}; moduleData[key.slice(dashIndex + 1)] = val; return ( obj = {}, obj[key.slice(0, dashIndex)] = moduleData, obj ) @@ -70,14 +70,7 @@ var deepifyKeys = function (obj) { return mapObject(obj, } ); }; -var flatifyKeys = function (obj) { return mapObject(obj, - function (mod, data) { return !object(data) ? (( obj = {}, obj[mod] = data, obj )) : mapObject( - flatifyKeys(data), - function (key, val) { return (( obj = {}, obj[(mod + "-" + key)] = val, obj )) - var obj; } - ) - var obj; } -); }; + var omit = function (key, obj) { return mapObject(obj, function (mod, data) { return mod !== key ? (( obj = {}, obj[mod] = data, obj )) : {} @@ -107,42 +100,43 @@ var considerSvg = function (vnode$$1) { return !svg(vnode$$1) ? vnode$$1 : } ); }; -var considerData = function (data) { - return !data.data ? data : mapObject(data, function (mod, data) { - var key = mod === 'data' ? 'dataset' : mod; - return (( obj = {}, obj[key] = data, obj )) - var obj; - }) +var rewrites = { + for: 'attrs', + role: 'attrs', + tabindex: 'attrs', + 'aria-*': 'attrs', + key: null }; -var considerAria = function (data) { return data.attrs || data.aria ? omit('aria', - assign(data, { - attrs: extend(data.attrs, data.aria ? flatifyKeys({ aria: data.aria }) : {}) - }) -) : data; }; - -var considerProps = function (data) { return mapObject(data, - function (key, val) { return object(val) ? ( obj = {}, obj[key] = val, obj ) : - { props: ( obj$1 = {}, obj$1[key] = val, obj$1 ) } +var rewriteModules = function (data, modules) { return mapObject(data, function (key, val) { + var inner = {}; + inner[key] = val; + if (rewrites[key] && modules[rewrites[key]] !== undefined) { + return ( obj = {}, obj[rewrites[key]] = inner, obj ) var obj; - var obj$1; } -); }; - -var rewritesMap = { for: 1, role: 1, tabindex: 1 }; - -var considerAttrs = function (data) { return mapObject(data, - function (key, data) { return !(key in rewritesMap) ? ( obj = {}, obj[key] = data, obj ) : { - attrs: extend(data.attrs, ( obj$1 = {}, obj$1[key] = data, obj$1 )) + } + if (rewrites[key] === null) { + return {} + } + var keys = Object.keys(rewrites); + for (var i = 0; i < keys.length; i++) { + var k = keys[i]; + if (k.charAt(k.length - 1) === '*' && key.indexOf(k.slice(0, -1)) === 0 && modules[rewrites[k]] !== undefined) { + return ( obj$1 = {}, obj$1[rewrites[k]] = inner, obj$1 ) + var obj$1; } - var obj; - var obj$1; } -); }; - -var considerKey = function (data) { - return 'key' in data ? omit('key', data) : data -}; + } + if (modules[key] !== undefined) { + return ( obj$2 = {}, obj$2[modules[key] ? modules[key] : key] = val, obj$2 ) + var obj$2; + } + if (modules.props !== undefined) { + return { props: inner } + } + return inner +}); }; -var sanitizeData = function (data) { return considerProps(considerAria(considerData(considerAttrs(considerKey(deepifyKeys(data)))))); }; +var sanitizeData = function (data, modules) { return considerSvg(rewriteModules(deepifyKeys(data, modules), modules)); }; var sanitizeText = function (children) { return children.length > 1 || !text(children[0]) ? undefined : children[0]; }; @@ -153,26 +147,41 @@ var sanitizeChildren = function (children) { return reduceDeep(children, functio } , []); }; -var createElement = function (sel, data) { - var children = [], len = arguments.length - 2; - while ( len-- > 0 ) children[ len ] = arguments[ len + 2 ]; +var defaultModules = { + attrs: '', + props: '', + class: '', + data: 'dataset', + style: '', + hook: '', + on: '' +}; + +var createElementWithModules = function (modules) { + return function (sel, data) { + var children = [], len = arguments.length - 2; + while ( len-- > 0 ) children[ len ] = arguments[ len + 2 ]; - if (fun(sel)) { - return sel(data || {}, children) + if (fun(sel)) { + return sel(data || {}, children) + } + var text$$1 = sanitizeText(children, modules); + return considerSvg({ + sel: sel, + data: data ? sanitizeData(data, modules) : {}, + children: text$$1 ? undefined : sanitizeChildren(children), + text: text$$1, + elm: undefined, + key: data ? data.key : undefined + }) } - var text$$1 = sanitizeText(children); - return considerSvg({ - sel: sel, - data: data ? sanitizeData(data) : {}, - children: text$$1 ? undefined : sanitizeChildren(children), - text: text$$1, - elm: undefined, - key: data ? data.key : undefined - }) }; +var createElement = createElementWithModules(defaultModules); + var index = { - createElement: createElement + createElement: createElement, + createElementWithModules: createElementWithModules }; -export { createElement };export default index; +export { createElementWithModules, createElement };export default index; diff --git a/dist/index.js b/dist/index.js index 993f053..db2b2ed 100644 --- a/dist/index.js +++ b/dist/index.js @@ -62,10 +62,10 @@ var mapObject = function (obj, fn) { return Object.keys(obj).map( {} ); }; -var deepifyKeys = function (obj) { return mapObject(obj, +var deepifyKeys = function (obj, modules) { return mapObject(obj, function (key, val) { var dashIndex = key.indexOf('-'); - if (dashIndex > -1) { + if (dashIndex > -1 && modules[key.slice(0, dashIndex)] !== undefined) { var moduleData = {}; moduleData[key.slice(dashIndex + 1)] = val; return ( obj = {}, obj[key.slice(0, dashIndex)] = moduleData, obj ) @@ -76,14 +76,7 @@ var deepifyKeys = function (obj) { return mapObject(obj, } ); }; -var flatifyKeys = function (obj) { return mapObject(obj, - function (mod, data) { return !object(data) ? (( obj = {}, obj[mod] = data, obj )) : mapObject( - flatifyKeys(data), - function (key, val) { return (( obj = {}, obj[(mod + "-" + key)] = val, obj )) - var obj; } - ) - var obj; } -); }; + var omit = function (key, obj) { return mapObject(obj, function (mod, data) { return mod !== key ? (( obj = {}, obj[mod] = data, obj )) : {} @@ -113,42 +106,43 @@ var considerSvg = function (vnode$$1) { return !svg(vnode$$1) ? vnode$$1 : } ); }; -var considerData = function (data) { - return !data.data ? data : mapObject(data, function (mod, data) { - var key = mod === 'data' ? 'dataset' : mod; - return (( obj = {}, obj[key] = data, obj )) - var obj; - }) +var rewrites = { + for: 'attrs', + role: 'attrs', + tabindex: 'attrs', + 'aria-*': 'attrs', + key: null }; -var considerAria = function (data) { return data.attrs || data.aria ? omit('aria', - assign(data, { - attrs: extend(data.attrs, data.aria ? flatifyKeys({ aria: data.aria }) : {}) - }) -) : data; }; - -var considerProps = function (data) { return mapObject(data, - function (key, val) { return object(val) ? ( obj = {}, obj[key] = val, obj ) : - { props: ( obj$1 = {}, obj$1[key] = val, obj$1 ) } +var rewriteModules = function (data, modules) { return mapObject(data, function (key, val) { + var inner = {}; + inner[key] = val; + if (rewrites[key] && modules[rewrites[key]] !== undefined) { + return ( obj = {}, obj[rewrites[key]] = inner, obj ) var obj; - var obj$1; } -); }; - -var rewritesMap = { for: 1, role: 1, tabindex: 1 }; - -var considerAttrs = function (data) { return mapObject(data, - function (key, data) { return !(key in rewritesMap) ? ( obj = {}, obj[key] = data, obj ) : { - attrs: extend(data.attrs, ( obj$1 = {}, obj$1[key] = data, obj$1 )) + } + if (rewrites[key] === null) { + return {} + } + var keys = Object.keys(rewrites); + for (var i = 0; i < keys.length; i++) { + var k = keys[i]; + if (k.charAt(k.length - 1) === '*' && key.indexOf(k.slice(0, -1)) === 0 && modules[rewrites[k]] !== undefined) { + return ( obj$1 = {}, obj$1[rewrites[k]] = inner, obj$1 ) + var obj$1; } - var obj; - var obj$1; } -); }; - -var considerKey = function (data) { - return 'key' in data ? omit('key', data) : data -}; + } + if (modules[key] !== undefined) { + return ( obj$2 = {}, obj$2[modules[key] ? modules[key] : key] = val, obj$2 ) + var obj$2; + } + if (modules.props !== undefined) { + return { props: inner } + } + return inner +}); }; -var sanitizeData = function (data) { return considerProps(considerAria(considerData(considerAttrs(considerKey(deepifyKeys(data)))))); }; +var sanitizeData = function (data, modules) { return considerSvg(rewriteModules(deepifyKeys(data, modules), modules)); }; var sanitizeText = function (children) { return children.length > 1 || !text(children[0]) ? undefined : children[0]; }; @@ -159,27 +153,43 @@ var sanitizeChildren = function (children) { return reduceDeep(children, functio } , []); }; -var createElement = function (sel, data) { - var children = [], len = arguments.length - 2; - while ( len-- > 0 ) children[ len ] = arguments[ len + 2 ]; +var defaultModules = { + attrs: '', + props: '', + class: '', + data: 'dataset', + style: '', + hook: '', + on: '' +}; + +var createElementWithModules = function (modules) { + return function (sel, data) { + var children = [], len = arguments.length - 2; + while ( len-- > 0 ) children[ len ] = arguments[ len + 2 ]; - if (fun(sel)) { - return sel(data || {}, children) + if (fun(sel)) { + return sel(data || {}, children) + } + var text$$1 = sanitizeText(children, modules); + return considerSvg({ + sel: sel, + data: data ? sanitizeData(data, modules) : {}, + children: text$$1 ? undefined : sanitizeChildren(children), + text: text$$1, + elm: undefined, + key: data ? data.key : undefined + }) } - var text$$1 = sanitizeText(children); - return considerSvg({ - sel: sel, - data: data ? sanitizeData(data) : {}, - children: text$$1 ? undefined : sanitizeChildren(children), - text: text$$1, - elm: undefined, - key: data ? data.key : undefined - }) }; +var createElement = createElementWithModules(defaultModules); + var index = { - createElement: createElement + createElement: createElement, + createElementWithModules: createElementWithModules }; +exports.createElementWithModules = createElementWithModules; exports.createElement = createElement; exports['default'] = index; diff --git a/src/fn.js b/src/fn.js index 02a4d78..bba2a50 100644 --- a/src/fn.js +++ b/src/fn.js @@ -27,10 +27,10 @@ export const mapObject = (obj, fn) => Object.keys(obj).map( {} ) -export const deepifyKeys = (obj) => mapObject(obj, +export const deepifyKeys = (obj, modules) => mapObject(obj, (key, val) => { const dashIndex = key.indexOf('-') - if (dashIndex > -1) { + if (dashIndex > -1 && modules[key.slice(0, dashIndex)] !== undefined) { const moduleData = { [key.slice(dashIndex + 1)]: val } diff --git a/src/index.js b/src/index.js index 8010ccb..3c46dff 100644 --- a/src/index.js +++ b/src/index.js @@ -25,37 +25,39 @@ const considerSvg = (vnode) => !is.svg(vnode) ? vnode : } ) -const considerData = (data) => { - return !data.data ? data : fn.mapObject(data, (mod, data) => { - const key = mod === 'data' ? 'dataset' : mod - return ({ [key]: data }) - }) +const rewrites = { + for: 'attrs', + role: 'attrs', + tabindex: 'attrs', + 'aria-*': 'attrs', + key: null } -const considerAria = (data) => data.attrs || data.aria ? fn.omit('aria', - fn.assign(data, { - attrs: fn.extend(data.attrs, data.aria ? fn.flatifyKeys({ aria: data.aria }) : {}) - }) -) : data - -const considerProps = (data) => fn.mapObject(data, - (key, val) => is.object(val) ? { [key]: val } : - { props: { [key]: val } } -) - -const rewritesMap = { for: 1, role: 1, tabindex: 1 } - -const considerAttrs = (data) => fn.mapObject(data, - (key, data) => !(key in rewritesMap) ? { [key]: data } : { - attrs: fn.extend(data.attrs, { [key]: data }) +const rewriteModules = (data, modules) => fn.mapObject(data, (key, val) => { + const inner = { [key]: val } + if (rewrites[key] && modules[rewrites[key]] !== undefined) { + return { [rewrites[key]]: inner } + } + if (rewrites[key] === null) { + return {} + } + const keys = Object.keys(rewrites) + for (let i = 0; i < keys.length; i++) { + const k = keys[i] + if (k.charAt(k.length - 1) === '*' && key.indexOf(k.slice(0, -1)) === 0 && modules[rewrites[k]] !== undefined) { + return { [rewrites[k]]: inner } } -) - -const considerKey = (data) => { - return 'key' in data ? fn.omit('key', data) : data -} + } + if (modules[key] !== undefined) { + return { [modules[key] ? modules[key] : key]: val } + } + if (modules.props !== undefined) { + return { props: inner } + } + return inner +}) -const sanitizeData = (data) => considerProps(considerAria(considerData(considerAttrs(considerKey(fn.deepifyKeys(data)))))) +const sanitizeData = (data, modules) => considerSvg(rewriteModules(fn.deepifyKeys(data, modules), modules)) const sanitizeText = (children) => children.length > 1 || !is.text(children[0]) ? undefined : children[0] @@ -66,21 +68,36 @@ const sanitizeChildren = (children) => fn.reduceDeep(children, (acc, child) => { } , []) -export const createElement = (sel, data, ...children) => { - if (is.fun(sel)) { - return sel(data || {}, children) +const defaultModules = { + attrs: '', + props: '', + class: '', + data: 'dataset', + style: '', + hook: '', + on: '' +} + +export const createElementWithModules = (modules) => { + return (sel, data, ...children) => { + if (is.fun(sel)) { + return sel(data || {}, children) + } + const text = sanitizeText(children, modules) + return considerSvg({ + sel, + data: data ? sanitizeData(data, modules) : {}, + children: text ? undefined : sanitizeChildren(children), + text, + elm: undefined, + key: data ? data.key : undefined + }) } - const text = sanitizeText(children) - return considerSvg({ - sel, - data: data ? sanitizeData(data) : {}, - children: text ? undefined : sanitizeChildren(children), - text, - elm: undefined, - key: data ? data.key : undefined - }) } +export const createElement = createElementWithModules(defaultModules) + export default { - createElement + createElement, + createElementWithModules } diff --git a/test/jsx-custom-modules-specs/component-without-props/actual.js b/test/jsx-custom-modules-specs/component-without-props/actual.js new file mode 100644 index 0000000..cf9218a --- /dev/null +++ b/test/jsx-custom-modules-specs/component-without-props/actual.js @@ -0,0 +1,9 @@ + +import Snabbdom from '../../../src/index' + +export default () => { + const Component = ({ name }) => // eslint-disable-line no-unused-vars +
Hello { name }
+ + return +} diff --git a/test/jsx-custom-modules-specs/component-without-props/transform-babel.js b/test/jsx-custom-modules-specs/component-without-props/transform-babel.js new file mode 100644 index 0000000..e6f354a --- /dev/null +++ b/test/jsx-custom-modules-specs/component-without-props/transform-babel.js @@ -0,0 +1,14 @@ + +import Snabbdom from '../../../src/index'; + +export default (() => { + const Component = ({ name }) => // eslint-disable-line no-unused-vars + Snabbdom.createElementWithModules({"attrs": "", "props": ""})( + 'div', + null, + 'Hello ', + name + ); + + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})(Component, null); +}); diff --git a/test/jsx-custom-modules-specs/component-without-props/transform-buble.js b/test/jsx-custom-modules-specs/component-without-props/transform-buble.js new file mode 100644 index 0000000..1a40720 --- /dev/null +++ b/test/jsx-custom-modules-specs/component-without-props/transform-buble.js @@ -0,0 +1,9 @@ + +import Snabbdom from '../../../src/index' + +export default () => { + var Component = ({ name }) => // eslint-disable-line no-unused-vars + Snabbdom.createElementWithModules({"attrs": "", "props": ""})( 'div', null, "Hello ", name ) + + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})( Component, null ) +} diff --git a/test/jsx-custom-modules-specs/component-without-props/transform-traceur.js b/test/jsx-custom-modules-specs/component-without-props/transform-traceur.js new file mode 100644 index 0000000..f2a4f08 --- /dev/null +++ b/test/jsx-custom-modules-specs/component-without-props/transform-traceur.js @@ -0,0 +1,13 @@ + +import Snabbdom from '../../../src/index'; +export default () => { + const Component = ({name}) => Snabbdom.createElementWithModules({ + "attrs": "", + "props": "" + })("div", null, "Hello ", name); + return Snabbdom.createElementWithModules({ + "attrs": "", + "props": "" + })(Component, null); +}; +//# sourceURL= diff --git a/test/jsx-custom-modules-specs/component-without-props/transform-typescript.js b/test/jsx-custom-modules-specs/component-without-props/transform-typescript.js new file mode 100644 index 0000000..c9edb4b --- /dev/null +++ b/test/jsx-custom-modules-specs/component-without-props/transform-typescript.js @@ -0,0 +1,8 @@ + +import Snabbdom from '../../../src/index'; +export default () => { + const Component = ({ name }) => Snabbdom.createElementWithModules({"attrs": "", "props": ""})("div", null, + "Hello ", + name); + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})(Component, null); +}; diff --git a/test/jsx-custom-modules-specs/component/actual.js b/test/jsx-custom-modules-specs/component/actual.js new file mode 100644 index 0000000..c15c62f --- /dev/null +++ b/test/jsx-custom-modules-specs/component/actual.js @@ -0,0 +1,9 @@ + +import Snabbdom from '../../../src/index' + +export default () => { + const Component = ({ name }) => // eslint-disable-line no-unused-vars +
Hello { name }
+ + return +} diff --git a/test/jsx-custom-modules-specs/component/transform-babel.js b/test/jsx-custom-modules-specs/component/transform-babel.js new file mode 100644 index 0000000..c423c6b --- /dev/null +++ b/test/jsx-custom-modules-specs/component/transform-babel.js @@ -0,0 +1,14 @@ + +import Snabbdom from '../../../src/index'; + +export default (() => { + const Component = ({ name }) => // eslint-disable-line no-unused-vars + Snabbdom.createElementWithModules({"attrs": "", "props": ""})( + "div", + null, + "Hello ", + name + ); + + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})(Component, { name: "world" }); +}); diff --git a/test/jsx-custom-modules-specs/component/transform-buble.js b/test/jsx-custom-modules-specs/component/transform-buble.js new file mode 100644 index 0000000..3b1debe --- /dev/null +++ b/test/jsx-custom-modules-specs/component/transform-buble.js @@ -0,0 +1,9 @@ + +import Snabbdom from '../../../src/index' + +export default () => { + var Component = ({ name }) => // eslint-disable-line no-unused-vars + Snabbdom.createElementWithModules({"attrs": "", "props": ""})( 'div', null, "Hello ", name ) + + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})( Component, { name: "world" }) +} diff --git a/test/jsx-custom-modules-specs/component/transform-traceur.js b/test/jsx-custom-modules-specs/component/transform-traceur.js new file mode 100644 index 0000000..1b2aeed --- /dev/null +++ b/test/jsx-custom-modules-specs/component/transform-traceur.js @@ -0,0 +1,13 @@ + +import Snabbdom from '../../../src/index'; +export default () => { + const Component = ({name}) => Snabbdom.createElementWithModules({ + "attrs": "", + "props": "" + })("div", null, "Hello ", name); + return Snabbdom.createElementWithModules({ + "attrs": "", + "props": "" + })(Component, {name: "world"}); +}; +//# sourceURL= diff --git a/test/jsx-custom-modules-specs/component/transform-typescript.js b/test/jsx-custom-modules-specs/component/transform-typescript.js new file mode 100644 index 0000000..033b376 --- /dev/null +++ b/test/jsx-custom-modules-specs/component/transform-typescript.js @@ -0,0 +1,8 @@ + +import Snabbdom from '../../../src/index'; +export default () => { + const Component = ({ name }) => Snabbdom.createElementWithModules({"attrs": "", "props": ""})("div", null, + "Hello ", + name); + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})(Component, { name: "world" }); +}; diff --git a/test/jsx-custom-modules-specs/element-with-attributes/actual.js b/test/jsx-custom-modules-specs/element-with-attributes/actual.js new file mode 100644 index 0000000..b0a643c --- /dev/null +++ b/test/jsx-custom-modules-specs/element-with-attributes/actual.js @@ -0,0 +1,6 @@ + +import Snabbdom from '../../../src/index' + +export default () => { + return +} diff --git a/test/jsx-custom-modules-specs/element-with-attributes/transform-babel.js b/test/jsx-custom-modules-specs/element-with-attributes/transform-babel.js new file mode 100644 index 0000000..74899fc --- /dev/null +++ b/test/jsx-custom-modules-specs/element-with-attributes/transform-babel.js @@ -0,0 +1,6 @@ + +import Snabbdom from '../../../src/index'; + +export default (() => { + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})("input", { "aria-role": "foo" }); +}); diff --git a/test/jsx-custom-modules-specs/element-with-attributes/transform-buble.js b/test/jsx-custom-modules-specs/element-with-attributes/transform-buble.js new file mode 100644 index 0000000..d7a1307 --- /dev/null +++ b/test/jsx-custom-modules-specs/element-with-attributes/transform-buble.js @@ -0,0 +1,6 @@ + +import Snabbdom from '../../../src/index' + +export default () => { + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})( 'input', { 'aria-role': "foo" }) +} diff --git a/test/jsx-custom-modules-specs/element-with-attributes/transform-traceur.js b/test/jsx-custom-modules-specs/element-with-attributes/transform-traceur.js new file mode 100644 index 0000000..20c8782 --- /dev/null +++ b/test/jsx-custom-modules-specs/element-with-attributes/transform-traceur.js @@ -0,0 +1,9 @@ + +import Snabbdom from '../../../src/index'; +export default () => { + return Snabbdom.createElementWithModules({ + "attrs": "", + "props": "" + })("input", {"aria-role": "foo"}); +}; +//# sourceURL= diff --git a/test/jsx-custom-modules-specs/element-with-attributes/transform-typescript.js b/test/jsx-custom-modules-specs/element-with-attributes/transform-typescript.js new file mode 100644 index 0000000..8719a13 --- /dev/null +++ b/test/jsx-custom-modules-specs/element-with-attributes/transform-typescript.js @@ -0,0 +1,5 @@ + +import Snabbdom from '../../../src/index'; +export default () => { + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})('input', { attrs: { "aria-role": "foo" }}) +}; diff --git a/test/jsx-custom-modules-specs/element-with-class-names/actual.js b/test/jsx-custom-modules-specs/element-with-class-names/actual.js new file mode 100644 index 0000000..a9caee4 --- /dev/null +++ b/test/jsx-custom-modules-specs/element-with-class-names/actual.js @@ -0,0 +1,8 @@ + +import Snabbdom from '../../../src/index' + +const isVisible = () => {} + +export default () => { + return
+} diff --git a/test/jsx-custom-modules-specs/element-with-class-names/transform-babel.js b/test/jsx-custom-modules-specs/element-with-class-names/transform-babel.js new file mode 100644 index 0000000..111f39e --- /dev/null +++ b/test/jsx-custom-modules-specs/element-with-class-names/transform-babel.js @@ -0,0 +1,8 @@ + +import Snabbdom from '../../../src/index'; + +const isVisible = () => {}; + +export default (() => { + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})('div', { 'class-visible': isVisible }); +}); diff --git a/test/jsx-custom-modules-specs/element-with-class-names/transform-buble.js b/test/jsx-custom-modules-specs/element-with-class-names/transform-buble.js new file mode 100644 index 0000000..c23250a --- /dev/null +++ b/test/jsx-custom-modules-specs/element-with-class-names/transform-buble.js @@ -0,0 +1,8 @@ + +import Snabbdom from '../../../src/index' + +var isVisible = () => {} + +export default () => { + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})( 'div', { 'class-visible': isVisible }) +} diff --git a/test/jsx-custom-modules-specs/element-with-class-names/transform-traceur.js b/test/jsx-custom-modules-specs/element-with-class-names/transform-traceur.js new file mode 100644 index 0000000..0cd73b3 --- /dev/null +++ b/test/jsx-custom-modules-specs/element-with-class-names/transform-traceur.js @@ -0,0 +1,10 @@ + +import Snabbdom from '../../../src/index'; +const isVisible = () => {}; +export default () => { + return Snabbdom.createElementWithModules({ + "attrs": "", + "props": "" + })("div", {"class-visible": isVisible}); +}; +//# sourceURL= diff --git a/test/jsx-custom-modules-specs/element-with-class-names/transform-typescript.js b/test/jsx-custom-modules-specs/element-with-class-names/transform-typescript.js new file mode 100644 index 0000000..2f9e57b --- /dev/null +++ b/test/jsx-custom-modules-specs/element-with-class-names/transform-typescript.js @@ -0,0 +1,6 @@ + +import Snabbdom from '../../../src/index'; +const isVisible = () => { }; +export default () => { + return Snabbdom.createElementWithModules({"attrs": "", "props": ""})('div', { props: { 'class-visible': isVisible }}); +}; diff --git a/test/jsx-custom-modules-specs/element-with-event/actual.js b/test/jsx-custom-modules-specs/element-with-event/actual.js new file mode 100644 index 0000000..4d33c83 --- /dev/null +++ b/test/jsx-custom-modules-specs/element-with-event/actual.js @@ -0,0 +1,8 @@ + +import Snabbdom from '../../../src/index' + +const callback = () => {} + +export default () => { + return