domhandler
Advanced tools
Comparing version 4.0.0 to 4.1.0
@@ -29,2 +29,8 @@ import { Node, Element, DataNode, NodeWithChildren, Document } from "./node"; | ||
normalizeWhitespace?: boolean; | ||
/** | ||
* Treat the markup as XML. | ||
* | ||
* @default false | ||
*/ | ||
xmlMode?: boolean; | ||
} | ||
@@ -78,5 +84,4 @@ interface ParserInterface { | ||
protected addNode(node: Node): void; | ||
protected addDataNode(node: DataNode): void; | ||
} | ||
export default DomHandler; | ||
//# sourceMappingURL=index.d.ts.map |
@@ -14,2 +14,3 @@ "use strict"; | ||
exports.DomHandler = void 0; | ||
var domelementtype_1 = require("domelementtype"); | ||
var node_1 = require("./node"); | ||
@@ -90,3 +91,4 @@ __exportStar(require("./node"), exports); | ||
DomHandler.prototype.onopentag = function (name, attribs) { | ||
var element = new node_1.Element(name, attribs); | ||
var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined; | ||
var element = new node_1.Element(name, attribs, undefined, type); | ||
this.addNode(element); | ||
@@ -98,3 +100,3 @@ this.tagStack.push(element); | ||
var lastNode = this.lastNode; | ||
if (lastNode && lastNode.type === "text" /* Text */) { | ||
if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) { | ||
if (normalizeWhitespace) { | ||
@@ -117,3 +119,3 @@ lastNode.data = (lastNode.data + data).replace(reWhitespace, " "); | ||
DomHandler.prototype.oncomment = function (data) { | ||
if (this.lastNode && this.lastNode.type === "comment" /* Comment */) { | ||
if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) { | ||
this.lastNode.data += data; | ||
@@ -131,3 +133,3 @@ return; | ||
var text = new node_1.Text(""); | ||
var node = new node_1.NodeWithChildren("cdata" /* CDATA */, [text]); | ||
var node = new node_1.NodeWithChildren(domelementtype_1.ElementType.CDATA, [text]); | ||
this.addNode(node); | ||
@@ -169,6 +171,2 @@ text.parent = node; | ||
}; | ||
DomHandler.prototype.addDataNode = function (node) { | ||
this.addNode(node); | ||
this.lastNode = node; | ||
}; | ||
return DomHandler; | ||
@@ -175,0 +173,0 @@ }()); |
@@ -98,3 +98,3 @@ import { ElementType } from "domelementtype"; | ||
[name: string]: string; | ||
}, children?: Node[]); | ||
}, children?: Node[], type?: ElementType.Tag | ElementType.Script | ElementType.Style); | ||
get tagName(): string; | ||
@@ -101,0 +101,0 @@ set tagName(name: string); |
@@ -10,2 +10,4 @@ "use strict"; | ||
return function (d, b) { | ||
if (typeof b !== "function" && b !== null) | ||
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); | ||
extendStatics(d, b); | ||
@@ -29,11 +31,12 @@ function __() { this.constructor = d; } | ||
exports.cloneNode = exports.Element = exports.Document = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0; | ||
var domelementtype_1 = require("domelementtype"); | ||
var nodeTypes = new Map([ | ||
["tag" /* Tag */, 1], | ||
["script" /* Script */, 1], | ||
["style" /* Style */, 1], | ||
["directive" /* Directive */, 1], | ||
["text" /* Text */, 3], | ||
["cdata" /* CDATA */, 4], | ||
["comment" /* Comment */, 8], | ||
["root" /* Root */, 9], | ||
[domelementtype_1.ElementType.Tag, 1], | ||
[domelementtype_1.ElementType.Script, 1], | ||
[domelementtype_1.ElementType.Style, 1], | ||
[domelementtype_1.ElementType.Directive, 1], | ||
[domelementtype_1.ElementType.Text, 3], | ||
[domelementtype_1.ElementType.CDATA, 4], | ||
[domelementtype_1.ElementType.Comment, 8], | ||
[domelementtype_1.ElementType.Root, 9], | ||
]); | ||
@@ -142,3 +145,3 @@ /** | ||
function Text(data) { | ||
return _super.call(this, "text" /* Text */, data) || this; | ||
return _super.call(this, domelementtype_1.ElementType.Text, data) || this; | ||
} | ||
@@ -151,3 +154,3 @@ return Text; | ||
function Comment(data) { | ||
return _super.call(this, "comment" /* Comment */, data) || this; | ||
return _super.call(this, domelementtype_1.ElementType.Comment, data) || this; | ||
} | ||
@@ -160,3 +163,3 @@ return Comment; | ||
function ProcessingInstruction(name, data) { | ||
var _this = _super.call(this, "directive" /* Directive */, data) || this; | ||
var _this = _super.call(this, domelementtype_1.ElementType.Directive, data) || this; | ||
_this.name = name; | ||
@@ -216,3 +219,3 @@ return _this; | ||
function Document(children) { | ||
return _super.call(this, "root" /* Root */, children) || this; | ||
return _super.call(this, domelementtype_1.ElementType.Root, children) || this; | ||
} | ||
@@ -229,12 +232,12 @@ return Document; | ||
*/ | ||
function Element(name, attribs, children) { | ||
function Element(name, attribs, children, type) { | ||
if (children === void 0) { children = []; } | ||
var _this = _super.call(this, name === "script" | ||
? "script" /* Script */ | ||
if (type === void 0) { type = name === "script" | ||
? domelementtype_1.ElementType.Script | ||
: name === "style" | ||
? "style" /* Style */ | ||
: "tag" /* Tag */, children) || this; | ||
? domelementtype_1.ElementType.Style | ||
: domelementtype_1.ElementType.Tag; } | ||
var _this = _super.call(this, type, children) || this; | ||
_this.name = name; | ||
_this.attribs = attribs; | ||
_this.attribs = attribs; | ||
return _this; | ||
@@ -282,6 +285,6 @@ } | ||
switch (node.type) { | ||
case "text" /* Text */: | ||
case domelementtype_1.ElementType.Text: | ||
result = new Text(node.data); | ||
break; | ||
case "directive" /* Directive */: { | ||
case domelementtype_1.ElementType.Directive: { | ||
var instr = node; | ||
@@ -296,8 +299,8 @@ result = new ProcessingInstruction(instr.name, instr.data); | ||
} | ||
case "comment" /* Comment */: | ||
case domelementtype_1.ElementType.Comment: | ||
result = new Comment(node.data); | ||
break; | ||
case "tag" /* Tag */: | ||
case "script" /* Script */: | ||
case "style" /* Style */: { | ||
case domelementtype_1.ElementType.Tag: | ||
case domelementtype_1.ElementType.Script: | ||
case domelementtype_1.ElementType.Style: { | ||
var elem = node; | ||
@@ -316,3 +319,3 @@ var children = recursive ? cloneChildren(elem.children) : []; | ||
} | ||
case "cdata" /* CDATA */: { | ||
case domelementtype_1.ElementType.CDATA: { | ||
var cdata = node; | ||
@@ -325,3 +328,3 @@ var children = recursive ? cloneChildren(cdata.children) : []; | ||
} | ||
case "root" /* Root */: { | ||
case domelementtype_1.ElementType.Root: { | ||
var doc = node; | ||
@@ -337,3 +340,3 @@ var children = recursive ? cloneChildren(doc.children) : []; | ||
} | ||
case "doctype" /* Doctype */: { | ||
case domelementtype_1.ElementType.Doctype: { | ||
// This type isn't used yet. | ||
@@ -340,0 +343,0 @@ throw new Error("Not implemented yet: ElementType.Doctype case"); |
{ | ||
"name": "domhandler", | ||
"version": "4.0.0", | ||
"version": "4.1.0", | ||
"description": "Handler for htmlparser2 that turns pages into a dom", | ||
@@ -36,3 +36,3 @@ "author": "Felix Boehm <me@feedic.com>", | ||
"dependencies": { | ||
"domelementtype": "^2.1.0" | ||
"domelementtype": "^2.2.0" | ||
}, | ||
@@ -46,4 +46,4 @@ "devDependencies": { | ||
"eslint": "^7.9.0", | ||
"eslint-config-prettier": "^6.0.0", | ||
"htmlparser2": "^5.0.0", | ||
"eslint-config-prettier": "^8.1.0", | ||
"htmlparser2": "^6.0.0", | ||
"jest": "^26.0.1", | ||
@@ -50,0 +50,0 @@ "prettier": "^2.0.5", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
36307
711
Updateddomelementtype@^2.2.0