71 lines
1.8 KiB
JavaScript
71 lines
1.8 KiB
JavaScript
|
var Parser = require("./Parser.js"),
|
||
|
DomHandler = require("domhandler");
|
||
|
|
||
|
function defineProp(name, value){
|
||
|
delete module.exports[name];
|
||
|
module.exports[name] = value;
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
Parser: Parser,
|
||
|
Tokenizer: require("./Tokenizer.js"),
|
||
|
ElementType: require("domelementtype"),
|
||
|
DomHandler: DomHandler,
|
||
|
get FeedHandler(){
|
||
|
return defineProp("FeedHandler", require("./FeedHandler.js"));
|
||
|
},
|
||
|
get Stream(){
|
||
|
return defineProp("Stream", require("./Stream.js"));
|
||
|
},
|
||
|
get WritableStream(){
|
||
|
return defineProp("WritableStream", require("./WritableStream.js"));
|
||
|
},
|
||
|
get ProxyHandler(){
|
||
|
return defineProp("ProxyHandler", require("./ProxyHandler.js"));
|
||
|
},
|
||
|
get DomUtils(){
|
||
|
return defineProp("DomUtils", require("domutils"));
|
||
|
},
|
||
|
get CollectingHandler(){
|
||
|
return defineProp("CollectingHandler", require("./CollectingHandler.js"));
|
||
|
},
|
||
|
// For legacy support
|
||
|
DefaultHandler: DomHandler,
|
||
|
get RssHandler(){
|
||
|
return defineProp("RssHandler", this.FeedHandler);
|
||
|
},
|
||
|
//helper methods
|
||
|
parseDOM: function(data, options) {
|
||
|
var handler = new DomHandler(options);
|
||
|
var parser = new Parser(handler, options);
|
||
|
parser.end(data);
|
||
|
return handler.dom;
|
||
|
},
|
||
|
parseFeed: function(feed, options){
|
||
|
var handler = new module.exports.FeedHandler();
|
||
|
var parser = new Parser(handler);
|
||
|
parser.end(feed);
|
||
|
return handler.dom;
|
||
|
},
|
||
|
createDomStream: function(cb, options, elementCb){
|
||
|
var handler = new DomHandler(cb, options, elementCb);
|
||
|
return new Parser(handler, options);
|
||
|
},
|
||
|
// List of all events that the parser emits
|
||
|
EVENTS: { /* Format: eventname: number of arguments */
|
||
|
attribute: 2,
|
||
|
cdatastart: 0,
|
||
|
cdataend: 0,
|
||
|
text: 1,
|
||
|
processinginstruction: 2,
|
||
|
comment: 1,
|
||
|
commentend: 0,
|
||
|
closetag: 1,
|
||
|
opentag: 2,
|
||
|
opentagname: 1,
|
||
|
error: 1,
|
||
|
end: 0
|
||
|
}
|
||
|
};
|