UNPKG

npmc

Version:

a package manager for JavaScript

58 lines (42 loc) 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createTextNode = exports.setAttribute = exports.removeChildNode = exports.insertBeforeNode = exports.appendChildNode = exports.createNode = void 0; // Helper utilities implementing some common DOM methods to simplify reconciliation code const createNode = tagName => ({ nodeName: tagName.toUpperCase(), style: {}, attributes: {}, childNodes: [] }); exports.createNode = createNode; const appendChildNode = (node, childNode) => { node.childNodes.push(childNode); }; exports.appendChildNode = appendChildNode; const insertBeforeNode = (node, newChildNode, beforeChildNode) => { const index = node.childNodes.indexOf(beforeChildNode); if (index >= 0) { node.childNodes.splice(index, 0, newChildNode); return; } node.childNodes.push(newChildNode); }; exports.insertBeforeNode = insertBeforeNode; const removeChildNode = (node, removeNode) => { const index = node.childNodes.indexOf(removeNode); if (index >= 0) { node.childNodes.splice(index, 1); } }; exports.removeChildNode = removeChildNode; const setAttribute = (node, key, value) => { node.attributes[key] = value; }; exports.setAttribute = setAttribute; const createTextNode = text => ({ nodeName: '#text', nodeValue: text }); exports.createTextNode = createTextNode;