UNPKG

1.2 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _createElement = require('@f/create-element');
8
9var _createElement2 = _interopRequireDefault(_createElement);
10
11var _setAttribute = require('./setAttribute');
12
13var _setAttribute2 = _interopRequireDefault(_setAttribute);
14
15var _foreach = require('@f/foreach');
16
17var _foreach2 = _interopRequireDefault(_foreach);
18
19function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21/**
22 * Create a DOM element
23 */
24
25function createNode(vnode, children, element) {
26 var type = vnode.type;
27 var node = undefined;
28
29 if (!element) {
30 if (type === '#text') {
31 vnode.element = document.createTextNode(vnode.props.nodeValue);
32 return vnode;
33 }
34
35 node = vnode.element = (0, _createElement2.default)(type);
36 } else {
37 node = vnode.element = element;
38 }
39
40 (0, _foreach2.default)(function (child) {
41 return node.appendChild(child.element);
42 }, children);
43 (0, _foreach2.default)(function (value, name) {
44 return (0, _setAttribute2.default)(node, name, value);
45 }, vnode.props);
46 return vnode;
47}
48
49/**
50 * Exports
51 */
52
53/**
54 * Imports
55 */
56
57exports.default = createNode;
\No newline at end of file