summaryrefslogtreecommitdiff
path: root/alarm/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-10-18 08:59:09 +0200
committerMinteck <contact@minteck.org>2022-10-18 08:59:09 +0200
commit2c4ae43e688a9873e86211ea0e7aeb9ba770dd77 (patch)
tree17848d95522dab25d3cdeb9c4a6450e2a234861f /alarm/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js
parent108525534c28013cfe1897c30e4565f9893f3766 (diff)
downloadpluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.tar.gz
pluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.tar.bz2
pluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.zip
Update
Diffstat (limited to 'alarm/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js')
-rw-r--r--alarm/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/alarm/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js b/alarm/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js
new file mode 100644
index 0000000..6de7674
--- /dev/null
+++ b/alarm/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js
@@ -0,0 +1,45 @@
+"use strict";
+
+const produceXMLSerialization = require("w3c-xmlserializer");
+const parse5 = require("parse5");
+const DOMException = require("domexception/webidl2js-wrapper");
+
+const utils = require("../generated/utils");
+const treeAdapter = require("./parse5-adapter-serialization");
+const NODE_TYPE = require("../node-type");
+const NAMESPACES = require("../helpers/namespaces");
+
+function htmlSerialization(node) {
+ if (
+ node.nodeType === NODE_TYPE.ELEMENT_NODE &&
+ node.namespaceURI === NAMESPACES.HTML_NS &&
+ node.tagName === "TEMPLATE"
+ ) {
+ node = node.content;
+ }
+
+ return parse5.serialize(node, { treeAdapter });
+}
+
+module.exports.fragmentSerialization = (node, { requireWellFormed, globalObject }) => {
+ const contextDocument =
+ node.nodeType === NODE_TYPE.DOCUMENT_NODE ? node : node._ownerDocument;
+ if (contextDocument._parsingMode === "html") {
+ return htmlSerialization(node);
+ }
+
+ const childNodes = node.childNodesForSerializing || node.childNodes;
+
+ try {
+ let serialized = "";
+ for (let i = 0; i < childNodes.length; ++i) {
+ serialized += produceXMLSerialization(
+ utils.wrapperForImpl(childNodes[i] || childNodes.item(i)),
+ { requireWellFormed }
+ );
+ }
+ return serialized;
+ } catch (e) {
+ throw DOMException.create(globalObject, [e.message, "InvalidStateError"]);
+ }
+};