72 lines
2 KiB
JavaScript
72 lines
2 KiB
JavaScript
var Parser = require("./Parser.js");
|
|
var 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);
|
|
new Parser(handler, options).end(data);
|
|
return handler.dom;
|
|
},
|
|
parseFeed: function(feed, options) {
|
|
var handler = new module.exports.FeedHandler(options);
|
|
new Parser(handler, options).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
|
|
}
|
|
};
|