Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80684 views
1
var Parser = require("./Parser.js"),
2
DomHandler = require("domhandler");
3
4
function defineProp(name, value){
5
delete module.exports[name];
6
module.exports[name] = value;
7
return value;
8
}
9
10
module.exports = {
11
Parser: Parser,
12
Tokenizer: require("./Tokenizer.js"),
13
ElementType: require("domelementtype"),
14
DomHandler: DomHandler,
15
get FeedHandler(){
16
return defineProp("FeedHandler", require("./FeedHandler.js"));
17
},
18
get Stream(){
19
return defineProp("Stream", require("./Stream.js"));
20
},
21
get WritableStream(){
22
return defineProp("WritableStream", require("./WritableStream.js"));
23
},
24
get ProxyHandler(){
25
return defineProp("ProxyHandler", require("./ProxyHandler.js"));
26
},
27
get DomUtils(){
28
return defineProp("DomUtils", require("domutils"));
29
},
30
get CollectingHandler(){
31
return defineProp("CollectingHandler", require("./CollectingHandler.js"));
32
},
33
// For legacy support
34
DefaultHandler: DomHandler,
35
get RssHandler(){
36
return defineProp("RssHandler", this.FeedHandler);
37
},
38
//helper methods
39
parseDOM: function(data, options){
40
var handler = new DomHandler(options);
41
new Parser(handler, options).end(data);
42
return handler.dom;
43
},
44
parseFeed: function(feed, options){
45
var handler = new module.exports.FeedHandler(options);
46
new Parser(handler, options).end(feed);
47
return handler.dom;
48
},
49
createDomStream: function(cb, options, elementCb){
50
var handler = new DomHandler(cb, options, elementCb);
51
return new Parser(handler, options);
52
},
53
// List of all events that the parser emits
54
EVENTS: { /* Format: eventname: number of arguments */
55
attribute: 2,
56
cdatastart: 0,
57
cdataend: 0,
58
text: 1,
59
processinginstruction: 2,
60
comment: 1,
61
commentend: 0,
62
closetag: 1,
63
opentag: 2,
64
opentagname: 1,
65
error: 1,
66
end: 0
67
}
68
};
69
70