diff --git a/src/FeedHandler.spec.ts b/src/FeedHandler.spec.ts index 81d128ee5..be273f4d1 100644 --- a/src/FeedHandler.spec.ts +++ b/src/FeedHandler.spec.ts @@ -1,7 +1,7 @@ // Runs tests for feeds import * as helper from "./__fixtures__/test-helper"; -import { FeedHandler, parseFeed } from "./FeedHandler"; +import { DomHandler, getFeed, parseFeed } from "."; import fs from "fs"; import path from "path"; @@ -9,8 +9,8 @@ const documents = path.join(__dirname, "__fixtures__", "Documents"); helper.createSuite("Feeds", (test, cb) => { const file = fs.readFileSync(path.join(documents, test.file), "utf8"); - const handler: FeedHandler = new FeedHandler((err) => - cb(err, handler.feed) + const handler: DomHandler = new DomHandler((err) => + cb(err, getFeed(handler.dom)) ); helper.writeToParser(handler, { xmlMode: true }, file); diff --git a/src/FeedHandler.ts b/src/FeedHandler.ts deleted file mode 100644 index 1e36ed5a2..000000000 --- a/src/FeedHandler.ts +++ /dev/null @@ -1,52 +0,0 @@ -import DomHandler, { DomHandlerOptions } from "domhandler"; -import { getFeed, Feed } from "domutils"; -import { Parser, ParserOptions } from "./Parser.js"; - -export { getFeed }; - -/** @deprecated Handler is no longer necessary; use `getFeed` or `parseFeed` instead. */ -export class FeedHandler extends DomHandler { - feed?: Feed; - - /** - * - * @param callback - * @param options - */ - constructor( - callback?: ((error: Error | null) => void) | DomHandlerOptions, - options?: DomHandlerOptions - ) { - if (typeof callback === "object") { - callback = undefined; - options = callback; - } - super(callback, options); - } - - override onend(): void { - const feed = getFeed(this.dom); - - if (feed) { - this.feed = feed; - this.handleCallback(null); - } else { - this.handleCallback(new Error("couldn't find root of feed")); - } - } -} - -/** - * Parse a feed. - * - * @param feed The feed that should be parsed, as a string. - * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`. - */ -export function parseFeed( - feed: string, - options: ParserOptions & DomHandlerOptions = { xmlMode: true } -): Feed | null { - const handler = new DomHandler(null, options); - new Parser(handler, options).end(feed); - return getFeed(handler.dom); -} diff --git a/src/index.spec.ts b/src/index.spec.ts index ba076f056..c55cd3a2e 100644 --- a/src/index.spec.ts +++ b/src/index.spec.ts @@ -4,9 +4,7 @@ import { createDomStream, DomHandler, DefaultHandler, - RssHandler, } from "."; -import { FeedHandler } from "./FeedHandler"; import { Element } from "domhandler"; // Add an `attributes` prop to the Element for now, to make it possible for Jest to render DOM nodes. @@ -49,7 +47,6 @@ describe("Index", () => { describe("API", () => { it("should export the appropriate APIs", () => { - expect(RssHandler).toEqual(FeedHandler); expect(DomHandler).toEqual(DefaultHandler); }); }); diff --git a/src/index.ts b/src/index.ts index 2b144ce39..abff02cc2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -59,17 +59,32 @@ export { default as Tokenizer, type Callbacks as TokenizerCallbacks, } from "./Tokenizer.js"; -import * as ElementType from "domelementtype"; -export { ElementType }; /* * All of the following exports exist for backwards-compatibility. * They should probably be removed eventually. */ +import * as ElementType from "domelementtype"; +export { ElementType }; + +import { getFeed, Feed } from "domutils"; + +export { getFeed }; + +/** + * Parse a feed. + * + * @param feed The feed that should be parsed, as a string. + * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`. + */ +export function parseFeed( + feed: string, + options: ParserOptions & DomHandlerOptions = { xmlMode: true } +): Feed | null { + return getFeed(parseDOM(feed, options)); +} -export * from "./FeedHandler.js"; export * as DomUtils from "domutils"; -// Old names for Dom- & FeedHandler +// Old name for DomHandler export { DomHandler as DefaultHandler }; -export { FeedHandler as RssHandler } from "./FeedHandler.js";