UNPKG

@motorcycle/mostly-dom

Version:

Motorcycle.ts adapter for mostly-dom. Built on @motorcycle/dom.

20 lines 1.07 kB
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