@motorcycle/mostly-dom
Version:
Motorcycle.ts adapter for mostly-dom. Built on @motorcycle/dom.
23 lines • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var mostly_dom_1 = require("mostly-dom");
function vNodeWrapper(rootElement) {
var rootVNode = mostly_dom_1.elementToVNode(rootElement);
var rootVNodeSelector = vNodeSelector(rootVNode);
var rootTagName = rootVNodeSelector.tagName, rootId = rootVNodeSelector.id, rootClassName = rootVNodeSelector.className;
return function execute(vNode) {
var _a = vNodeSelector(vNode), tagName = _a.tagName, id = _a.id, className = _a.className;
var areSameVNode = tagName === rootTagName && id === rootId && className === rootClassName;
if (areSameVNode)
return vNode;
var wrappedVNode = mostly_dom_1.h(rootTagName, { id: rootId, className: rootClassName }, [vNode]);
wrappedVNode.element = rootElement;
return wrappedVNode;
};
}
exports.vNodeWrapper = vNodeWrapper;
function vNodeSelector(vNode) {
var tagName = vNode.tagName, _a = vNode.props, _b = _a.id, id = _b === void 0 ? '' : _b, _c = _a.className, className = _c === void 0 ? '' : _c;
return { tagName: tagName, id: id, className: className };
}
//# sourceMappingURL=vNodeWrapper.js.map