| 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); |
| 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 |
| } |
| }; |