polling-emitter
Version:
75 lines • 1.93 kB
TypeScript
/** @module polling-emitter
*/
declare module "polling-emitter" {
/**
* @typedef Options
* @type {Object}
* @prop {number} [pollInterval=60000]
* @prop {boolean} [invalidateInitialEntries=false]
* @prop {boolean} [autostart=true]
* @prop {Function} [getIdFromEntry=(entry) => entry.id]
* @prop {Function} [processEntry]
* @prop {Function} fetchEntries
*/
export type Options = {
pollInterval?: number;
invalidateInitialEntries?: boolean;
autostart?: boolean;
getIdFromEntry?: (...params: any[]) => any;
processEntry?: (...params: any[]) => any;
fetchEntries: (...params: any[]) => any;
};
/**
* @constructor
* @param {Options} options
*/
export default class extends EventEmitter {
constructor(options: Options);
/**
* @member {Options}
* @readonly
*/
readonly options: Options;
/**
* @member {Set<string>}
*/
processedEntryIds: Set<string>;
/**
* @member {number}
*/
successfulRunsCount: number;
/**
* @member {boolean}
*/
isRunning: boolean;
/**
* @type {boolean}
*/
hasProcessEntryFunction: boolean;
/**
* @type {boolean}
*/
hasHandleErrorFunction: boolean;
/**
* @function
* @fires PollingEmitter#newEntry
*/
start(): void;
/**
* @function
* @param {Object} entry
* @returns {boolean}
*/
hasAlreadyProcessedEntry(entry: any): boolean;
/**
* @function
* @param {string} entryId
* @returns {boolean}
*/
hasAlreadyProcessedEntryId(entryId: string): boolean;
/**
* @function
*/
stop(): void;
}
}