UNPKG

mostly-dom

Version:
32 lines 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var ModuleCallbacks_1 = require("./modules/ModuleCallbacks"); var createElement_1 = require("./createElement"); var patchVNode_1 = require("./patchVNode"); var removeVNodes_1 = require("./removeVNodes"); var helpers_1 = require("./helpers"); function init(modules) { if (modules === void 0) { modules = []; } var moduleCallbacks = new ModuleCallbacks_1.ModuleCallbacks(modules); return function patch(formerVNode, vNode) { var insertedVNodeQueue = []; moduleCallbacks.pre(vNode); if (helpers_1.vNodesAreEqual(formerVNode, vNode)) patchVNode_1.patchVNode(formerVNode, vNode, moduleCallbacks, insertedVNodeQueue); else { var element = formerVNode.element; var parentNode = element.parentNode; vNode = createElement_1.createElement(vNode, moduleCallbacks, insertedVNodeQueue); if (parentNode) { parentNode.insertBefore(vNode.element, element.nextSibling); removeVNodes_1.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; }; } exports.init = init; //# sourceMappingURL=init.js.map