"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0; var domhandler_1 = require("domhandler"); var dom_serializer_1 = __importDefault(require("dom-serializer")); var domelementtype_1 = require("domelementtype"); /** * @param node Node to get the outer HTML of. * @param options Options for serialization. * @deprecated Use the `dom-serializer` module directly. * @returns `node`'s outer HTML. */ function getOuterHTML(node, options) { return dom_serializer_1.default(node, options); } exports.getOuterHTML = getOuterHTML; /** * @param node Node to get the inner HTML of. * @param options Options for serialization. * @deprecated Use the `dom-serializer` module directly. * @returns `node`'s inner HTML. */ function getInnerHTML(node, options) { return domhandler_1.hasChildren(node) ? node.children.map(function (node) { return getOuterHTML(node, options); }).join("") : ""; } exports.getInnerHTML = getInnerHTML; /** * Get a node's inner text. Same as `textContent`, but inserts newlines for `
` tags. * * @deprecated Use `textContent` instead. * @param node Node to get the inner text of. * @returns `node`'s inner text. */ function getText(node) { if (Array.isArray(node)) return node.map(getText).join(""); if (domhandler_1.isTag(node)) return node.name === "br" ? "\n" : getText(node.children); if (domhandler_1.isCDATA(node)) return getText(node.children); if (domhandler_1.isText(node)) return node.data; return ""; } exports.getText = getText; /** * Get a node's text content. * * @param node Node to get the text content of. * @returns `node`'s text content. * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent} */ function textContent(node) { if (Array.isArray(node)) return node.map(textContent).join(""); if (domhandler_1.isTag(node)) return textContent(node.children); if (domhandler_1.isCDATA(node)) return textContent(node.children); if (domhandler_1.isText(node)) return node.data; return ""; } exports.textContent = textContent; /** * Get a node's inner text. * * @param node Node to get the inner text of. * @returns `node`'s inner text. * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText} */ function innerText(node) { if (Array.isArray(node)) return node.map(innerText).join(""); if (domhandler_1.hasChildren(node) && node.type === domelementtype_1.ElementType.Tag) { return innerText(node.children); } if (domhandler_1.isCDATA(node)) return innerText(node.children); if (domhandler_1.isText(node)) return node.data; return ""; } exports.innerText = innerText;