UNPKG

mostly-dom

Version:
29 lines 1.26 kB
import { ModuleCallbacks } from './modules/ModuleCallbacks'; import { createElement } from './createElement'; import { patchVNode } from './patchVNode'; import { removeVNodes } from './removeVNodes'; import { vNodesAreEqual } from './helpers'; export function init(modules) { if (modules === void 0) { modules = []; } var moduleCallbacks = new ModuleCallbacks(modules); return function patch(formerVNode, vNode) { var insertedVNodeQueue = []; moduleCallbacks.pre(vNode); if (vNodesAreEqual(formerVNode, vNode)) patchVNode(formerVNode, vNode, moduleCallbacks, insertedVNodeQueue); else { var element = formerVNode.element; var parentNode = element.parentNode; vNode = createElement(vNode, moduleCallbacks, insertedVNodeQueue); if (parentNode) { parentNode.insertBefore(vNode.element, element.nextSibling); removeVNodes(parentNode, [formerVNode], 0, 0, moduleCallbacks); } } for (var i = 0; i < insertedVNodeQueue.length; ++i) insertedVNodeQueue[i].props.insert(insertedVNodeQueue[i]); moduleCallbacks.post(vNode); return vNode; }; } //# sourceMappingURL=init.js.map