eslint-remote-tester
Version:
Tool for running ESLint on multiple repositories
142 lines • 4.4 kB
TypeScript
import { type LogMessage, type Task, type Listener, type ListenerType } from './types.js';
declare const DEFAULT_COLOR: (text: string) => string;
/**
* Resolve color for message or task
*/
export declare function resolveColor(taskOrMessage: Task | LogMessage): typeof DEFAULT_COLOR;
/**
* Logger for holding state of current progress
* - Exposes different logs via `on` subscribe method
*/
declare class ProgressLogger {
/** Messages printed as a list under tasks */
private messages;
/** Messages of the task runners */
private tasks;
/** Count of finished repositories */
scannedRepositories: number;
/** Total count of errors */
private errorCount;
/** Event listeners */
private listeners;
/** Indicates whether scan has reached time limit set by `config.timeLimit` */
private hasTimedout;
/** Handle of scan timeout. Used to interrupt scan once time limit has been reached. */
private scanTimeoutHandle;
/** Interval of CI status messages. Used to avoid CIs timing out due to silent stdout. */
private ciKeepAliveIntervalHandle;
constructor();
/**
* Subscribe on logger's events
*/
on<T extends ListenerType = ListenerType>(event: T & ListenerType, listener: Listener<T>): this;
/**
* Unsubscribe from logger's events
*/
off<T = ListenerType>(event: T & ListenerType, listener: Listener<T>): this;
/**
* Add new message to logger
*/
addNewMessage(message: LogMessage): void;
/**
* Get current log messages
*/
getMessages(): LogMessage[];
/**
* Check whether scan has timed out
*/
isTimeout(): boolean;
/**
* Add final message and fire exit event
*/
onAllRepositoriesScanned(): void;
/**
* Apply updates to given task
*/
updateTask(repository: string, updates: Omit<Task, 'repository'>): void;
/**
* Apply warning to given task. Duplicate warnings are ignored.
* Returns boolean indicating whether warning did not exist on task already
*/
addWarningToTask(repository: string, warning: string): boolean;
/**
* Log start of task runner
*/
onTaskStart(repository: string): void;
/**
* Log start of linting of given repository
*/
onLintStart(repository: string, fileCount: number): void;
/**
* Log end of linting of given repository
*/
onLintEnd(repository: string, resultCount: number): void;
/**
* Log end of a single file lint
*/
onFileLintEnd(repository: string, currentFileIndex: number): void;
/**
* Log warning about slow linting
*/
onFileLintSlow(repository: string, lintTime: number, file: string): void;
/**
* Log error about linter crashing
*/
onLinterCrash(repository: string, erroneousRule: string): void;
/**
* Log error about worker crashing
*/
onWorkerCrash(repository: string, errorCode?: string): void;
/**
* Log error about clone failure
*/
onCloneFailure(repository: string): void;
/**
* Log error about pull failure
*/
onPullFailure(repository: string): void;
/**
* Log error about filesystem read failure
*/
onReadFailure(repository: string): void;
/**
* Log error about result writing failure
*/
onWriteFailure(repository: string, error: Error): void;
/**
* Log start of cloning of given repository
*/
onRepositoryClone(repository: string): void;
/**
* Log start of pulling of given repository
*/
onRepositoryPull(repository: string): void;
/**
* Log start of cloning of given repository
*/
onRepositoryRead(repository: string): void;
/**
* Log status of scanning to CI
* - These are used to avoid CI timeouts
*/
onCiStatus(): void;
/**
* Log status of cache. Includes count of cached repositories and location of cache.
* Only used in CLI
*/
onCacheStatus(status: {
countOfRepositories: number;
location: string;
}): void;
/**
* Log notification about reaching scan time limit and notify listeners
*/
private onScanTimeout;
/**
* Log debug message
*/
onDebug(...messages: any[]): void;
}
declare const _default: ProgressLogger;
export default _default;
//# sourceMappingURL=progress-logger.d.ts.map