123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- "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 domhandler_1 = require("domhandler");
- /**
- * Check if the DOM element is a tag.
- *
- * `isTag(type)` includes `<script>` and `<style>` tags.
- *
- * @private
- * @category Utils
- * @param type - The DOM node to check.
- * @returns Whether the node is a tag.
- */
- var domhandler_2 = require("domhandler");
- Object.defineProperty(exports, "isTag", { enumerable: true, get: function () { return domhandler_2.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 - The 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 - The 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 - The 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 domhandler-compliant DOM structure.
- * @returns - The cloned DOM.
- */
- function cloneDom(dom) {
- var clone = 'length' in dom
- ? Array.prototype.map.call(dom, function (el) { return (0, domhandler_1.cloneNode)(el, true); })
- : [(0, 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;
- var CharacterCodes;
- (function (CharacterCodes) {
- CharacterCodes[CharacterCodes["LowerA"] = 97] = "LowerA";
- CharacterCodes[CharacterCodes["LowerZ"] = 122] = "LowerZ";
- CharacterCodes[CharacterCodes["UpperA"] = 65] = "UpperA";
- CharacterCodes[CharacterCodes["UpperZ"] = 90] = "UpperZ";
- CharacterCodes[CharacterCodes["Exclamation"] = 33] = "Exclamation";
- })(CharacterCodes || (CharacterCodes = {}));
- /**
- * Check if string is HTML.
- *
- * Tests for a `<` within a string, immediate followed by a letter and
- * eventually followed by a `>`.
- *
- * @private
- * @category Utils
- * @param str - The string to check.
- * @returns Indicates if `str` is HTML.
- */
- function isHtml(str) {
- var tagStart = str.indexOf('<');
- if (tagStart < 0 || tagStart > str.length - 3)
- return false;
- var tagChar = str.charCodeAt(tagStart + 1);
- return (((tagChar >= CharacterCodes.LowerA && tagChar <= CharacterCodes.LowerZ) ||
- (tagChar >= CharacterCodes.UpperA && tagChar <= CharacterCodes.UpperZ) ||
- tagChar === CharacterCodes.Exclamation) &&
- str.includes('>', tagStart + 2));
- }
- exports.isHtml = isHtml;
- //# sourceMappingURL=utils.js.map
|