summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/cheerio/lib/esm/parse.js
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-04-06 22:18:28 +0200
committerRaindropsSys <contact@minteck.org>2023-04-06 22:18:28 +0200
commit83354b2b88218090988dd6e526b0a2505b57e0f1 (patch)
treee3c73c38a122a78bb7e66fbb99056407edd9d4b9 /includes/external/addressbook/node_modules/cheerio/lib/esm/parse.js
parent47b8f2299a483024c4a6a8876af825a010954caa (diff)
downloadpluralconnect-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.js73
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