diff options
author | Minteck <contact@minteck.org> | 2022-02-09 17:58:07 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-02-09 17:58:07 +0100 |
commit | 22a25ded9f7d9c9a96cce8d1bc12475ca0434201 (patch) | |
tree | 0e33d0650fe58f41c00bbc4b8047956905766823 /node_modules/cheerio/lib/parsers/parse5-adapter.js | |
parent | 8f54d903fb3470823a5e4d6ff4655de009836245 (diff) | |
download | youtoo-22a25ded9f7d9c9a96cce8d1bc12475ca0434201.tar.gz youtoo-22a25ded9f7d9c9a96cce8d1bc12475ca0434201.tar.bz2 youtoo-22a25ded9f7d9c9a96cce8d1bc12475ca0434201.zip |
Major update
Diffstat (limited to 'node_modules/cheerio/lib/parsers/parse5-adapter.js')
-rw-r--r-- | node_modules/cheerio/lib/parsers/parse5-adapter.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/cheerio/lib/parsers/parse5-adapter.js b/node_modules/cheerio/lib/parsers/parse5-adapter.js new file mode 100644 index 0000000..4b480b1 --- /dev/null +++ b/node_modules/cheerio/lib/parsers/parse5-adapter.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.render = exports.parse = void 0; +var tslib_1 = require("tslib"); +var domhandler_1 = require("domhandler"); +var parse5_1 = require("parse5"); +var parse5_htmlparser2_tree_adapter_1 = tslib_1.__importDefault(require("parse5-htmlparser2-tree-adapter")); +function parse(content, options, isDocument) { + var opts = { + scriptingEnabled: typeof options.scriptingEnabled === 'boolean' + ? options.scriptingEnabled + : true, + treeAdapter: parse5_htmlparser2_tree_adapter_1.default, + sourceCodeLocationInfo: options.sourceCodeLocationInfo, + }; + var context = options.context; + // @ts-expect-error The tree adapter unfortunately doesn't return the exact types. + return isDocument + ? parse5_1.parse(content, opts) + : // @ts-expect-error Same issue again. + parse5_1.parseFragment(context, content, opts); +} +exports.parse = parse; +function render(dom) { + var _a; + /* + * `dom-serializer` passes over the special "root" node and renders the + * node's children in its place. To mimic this behavior with `parse5`, an + * equivalent operation must be applied to the input array. + */ + var nodes = 'length' in dom ? dom : [dom]; + for (var index = 0; index < nodes.length; index += 1) { + var node = nodes[index]; + if (domhandler_1.isDocument(node)) { + (_a = Array.prototype.splice).call.apply(_a, tslib_1.__spreadArray([nodes, index, 1], node.children)); + } + } + // @ts-expect-error Types don't align here either. + return parse5_1.serialize({ children: nodes }, { treeAdapter: parse5_htmlparser2_tree_adapter_1.default }); +} +exports.render = render; |