D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
home
/
etb1lp46s9ed
/
washeet.softurecs.com
/
node_modules
/
cheerio
/
lib
/
esm
/
Filename :
parse.js
back
Copy
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