import { Task } from '../config/task-graph'; import { BatchInfo, BatchStatus, ExternalObject, TaskStatus as NativeTaskStatus } from '../native'; import { TaskStatus } from './tasks-runner'; /** * The result of a completed {@link Task} * * Task timing information (start and end timestamps) is available * on the {@link Task} object itself via {@link Task.startTime} and * {@link Task.endTime}. */ export interface TaskResult { task: Task; status: TaskStatus; code: number; terminalOutput?: string; } /** * A map of {@link TaskResult} keyed by the ID of the completed {@link Task}s */ export type TaskResults = Record; export interface TaskMetadata { groupId: number; } export interface LifeCycle { startCommand?(parallel?: number): void | Promise; endCommand?(): void | Promise; scheduleTask?(task: Task): void | Promise; /** * @deprecated use startTasks * * startTask won't be supported after Nx 14 is released. */ startTask?(task: Task): void; /** * @deprecated use endTasks * * endTask won't be supported after Nx 14 is released. */ endTask?(task: Task, code: number): void; startTasks?(task: Task[], metadata: TaskMetadata): void | Promise; endTasks?(taskResults: TaskResult[], metadata: TaskMetadata): void | Promise; printTaskTerminalOutput?(task: Task, status: TaskStatus, output: string): void; registerRunningTask?(taskId: string, parserAndWriter: ExternalObject<[any, any]>): void; registerRunningTaskWithEmptyParser?(taskId: string): void; appendTaskOutput?(taskId: string, output: string, isPtyTask: boolean): void; setTaskStatus?(taskId: string, status: NativeTaskStatus): void; setTaskTiming?(taskId: string, startTime: number, endTime: number): void; registerForcedShutdownCallback?(callback: () => void): void; setEstimatedTaskTimings?(timings: Record): void; registerRunningBatch?(batchId: string, batchInfo: BatchInfo): void; appendBatchOutput?(batchId: string, output: string): void; setBatchStatus?(batchId: string, status: BatchStatus): void; } export declare class CompositeLifeCycle implements LifeCycle { private readonly lifeCycles; constructor(lifeCycles: LifeCycle[]); startCommand(parallel?: number): Promise; endCommand(): Promise; scheduleTask(task: Task): Promise; startTask(task: Task): void; endTask(task: Task, code: number): void; startTasks(tasks: Task[], metadata: TaskMetadata): Promise; endTasks(taskResults: TaskResult[], metadata: TaskMetadata): Promise; printTaskTerminalOutput(task: Task, status: TaskStatus, output: string): void; registerRunningTask(taskId: string, parserAndWriter: ExternalObject<[any, any]>): void; registerRunningTaskWithEmptyParser(taskId: string): void; appendTaskOutput(taskId: string, output: string, isPtyTask: boolean): void; setTaskStatus(taskId: string, status: NativeTaskStatus): void; setTaskTiming(taskId: string, startTime: number, endTime: number): void; registerForcedShutdownCallback(callback: () => void): void; setEstimatedTaskTimings(timings: Record): void; registerRunningBatch(batchId: string, batchInfo: BatchInfo): void; appendBatchOutput(batchId: string, output: string): void; setBatchStatus(batchId: string, status: BatchStatus): void; }