@motorcycle/mostly-dom
Version:
Motorcycle.ts adapter for mostly-dom. Built on @motorcycle/dom.
20 lines • 1.07 kB
JavaScript
import { elementToVNode, h, } from 'mostly-dom';
export function vNodeWrapper(rootElement) {
var rootVNode = 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 = h(rootTagName, { id: rootId, className: rootClassName }, [vNode]);
wrappedVNode.element = rootElement;
return wrappedVNode;
};
}
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