diff options
author | RaindropsSys <contact@minteck.org> | 2023-04-06 22:18:28 +0200 |
---|---|---|
committer | RaindropsSys <contact@minteck.org> | 2023-04-06 22:18:28 +0200 |
commit | 83354b2b88218090988dd6e526b0a2505b57e0f1 (patch) | |
tree | e3c73c38a122a78bb7e66fbb99056407edd9d4b9 /includes/external/addressbook/node_modules/cheerio/lib/esm/parse.js | |
parent | 47b8f2299a483024c4a6a8876af825a010954caa (diff) | |
download | pluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.tar.gz pluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.tar.bz2 pluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.zip |
Updated 5 files and added 1110 files (automated)
Diffstat (limited to 'includes/external/addressbook/node_modules/cheerio/lib/esm/parse.js')
-rw-r--r-- | includes/external/addressbook/node_modules/cheerio/lib/esm/parse.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/cheerio/lib/esm/parse.js b/includes/external/addressbook/node_modules/cheerio/lib/esm/parse.js new file mode 100644 index 0000000..781d6a4 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/esm/parse.js @@ -0,0 +1,73 @@ +import { removeElement } from 'domutils'; +import { Document, isDocument as checkIsDocument, } from 'domhandler'; +/** + * Get the parse function with options. + * + * @param parser - The parser function. + * @returns The parse function with options. + */ +export function getParse(parser) { + /** + * Parse a HTML string or a node. + * + * @param content - The HTML string or node. + * @param options - The parser options. + * @param isDocument - If `content` is a document. + * @param context - The context node in the DOM tree. + * @returns The parsed document node. + */ + return function parse(content, options, isDocument, context) { + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(content)) { + content = content.toString(); + } + if (typeof content === 'string') { + return parser(content, options, isDocument, context); + } + const doc = content; + if (!Array.isArray(doc) && checkIsDocument(doc)) { + // If `doc` is already a root, just return it + return doc; + } + // Add conent to new root element + const root = new Document([]); + // Update the DOM using the root + update(doc, root); + return root; + }; +} +/** + * Update the dom structure, for one changed layer. + * + * @param newChilds - The new children. + * @param parent - The new parent. + * @returns The parent node. + */ +export function update(newChilds, parent) { + // Normalize + const arr = Array.isArray(newChilds) ? newChilds : [newChilds]; + // Update parent + if (parent) { + parent.children = arr; + } + else { + parent = null; + } + // Update neighbors + for (let i = 0; i < arr.length; i++) { + const node = arr[i]; + // Cleanly remove existing nodes from their previous structures. + if (node.parent && node.parent.children !== arr) { + removeElement(node); + } + if (parent) { + node.prev = arr[i - 1] || null; + node.next = arr[i + 1] || null; + } + else { + node.prev = node.next = null; + } + node.parent = parent; + } + return parent; +} +//# sourceMappingURL=parse.js.map
\ No newline at end of file |