| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.isHtml = exports.cloneDom = exports.domEach = exports.cssCase = exports.camelCase = exports.isCheerio = exports.isTag = void 0;var htmlparser2_1 = require("htmlparser2");var domhandler_1 = require("domhandler");/** * Check if the DOM element is a tag. * * `isTag(type)` includes `<script>` and `<style>` tags. * * @private * @category Utils * @param type - DOM node to check. * @returns Whether the node is a tag. */exports.isTag = htmlparser2_1.DomUtils.isTag;/** * Checks if an object is a Cheerio instance. * * @category Utils * @param maybeCheerio - The object to check. * @returns Whether the object is a Cheerio instance. */function isCheerio(maybeCheerio) {    return maybeCheerio.cheerio != null;}exports.isCheerio = isCheerio;/** * Convert a string to camel case notation. * * @private * @category Utils * @param str - String to be converted. * @returns String in camel case notation. */function camelCase(str) {    return str.replace(/[_.-](\w|$)/g, function (_, x) { return x.toUpperCase(); });}exports.camelCase = camelCase;/** * Convert a string from camel case to "CSS case", where word boundaries are * described by hyphens ("-") and all characters are lower-case. * * @private * @category Utils * @param str - String to be converted. * @returns String in "CSS case". */function cssCase(str) {    return str.replace(/[A-Z]/g, '-$&').toLowerCase();}exports.cssCase = cssCase;/** * Iterate over each DOM element without creating intermediary Cheerio instances. * * This is indented for use internally to avoid otherwise unnecessary memory * pressure introduced by _make. * * @category Utils * @param array - Array to iterate over. * @param fn - Function to call. * @returns The original instance. */function domEach(array, fn) {    var len = array.length;    for (var i = 0; i < len; i++)        fn(array[i], i);    return array;}exports.domEach = domEach;/** * Create a deep copy of the given DOM structure. Sets the parents of the copies * of the passed nodes to `null`. * * @private * @category Utils * @param dom - The htmlparser2-compliant DOM structure. * @returns - The cloned DOM. */function cloneDom(dom) {    var clone = 'length' in dom        ? Array.prototype.map.call(dom, function (el) { return domhandler_1.cloneNode(el, true); })        : [domhandler_1.cloneNode(dom, true)];    // Add a root node around the cloned nodes    var root = new domhandler_1.Document(clone);    clone.forEach(function (node) {        node.parent = root;    });    return clone;}exports.cloneDom = cloneDom;/** * A simple way to check for HTML strings. Tests for a `<` within a string, * immediate followed by a letter and eventually followed by a `>`. * * @private */var quickExpr = /<[a-zA-Z][^]*>/;/** * Check if string is HTML. * * @private * @category Utils * @param str - String to check. * @returns Indicates if `str` is HTML. */function isHtml(str) {    // Run the regex    return quickExpr.test(str);}exports.isHtml = isHtml;
 |