UNPKG

feed-watch

Version:

A highly configurable lightweight module for watching/emitting changes in rss feeds

48 lines (47 loc) 1.29 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import { FeedParserOptions, AxiosRequestConfig } from './modules/FeedParser'; export interface FeedItem { title: string; description: string; summary: string; date: Date | null; pubdate: Date | null; link: string; origlink: string; author: string; guid: string; comments: string; [x: string]: any; } export interface FeedItemEvent { feed: { name: string; url: string; }; item: FeedItem; } export interface FeedConfig { name: string; url: string; refreshRateInSecs?: number; skipInitialList?: boolean; uidGenerator?: (item: FeedItem) => string; parserOpts?: FeedParserOptions; requestOpts?: AxiosRequestConfig; } declare type Feed = { timer?: NodeJS.Timer; config: FeedConfig; lastUid: string; }; export default class FeedWatch extends EventEmitter { private feedList; fetchAndUpdateItems(feed: Feed, isInitialRun?: boolean): Promise<void>; initFeed(config: FeedConfig): Promise<void>; add({ name, url, skipInitialList, refreshRateInSecs, uidGenerator, requestOpts, parserOpts, }: FeedConfig): void; remove(url: string): void; destroy(): void; list(): FeedConfig[]; } export {};