Spaces:
Running
Running
; | |
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 |