mirror of
https://github.com/pnpm/pnpm.git
synced 2026-01-27 00:08:53 -05:00
31 lines
773 B
TypeScript
31 lines
773 B
TypeScript
import PnpmError from '@pnpm/error'
|
|
|
|
interface ActionFailure {
|
|
prefix: string
|
|
message: string
|
|
error: Error
|
|
}
|
|
|
|
export interface RecursiveSummary {
|
|
fails: ActionFailure[]
|
|
passes: number
|
|
}
|
|
|
|
class RecursiveFailError extends PnpmError {
|
|
public readonly fails: ActionFailure[]
|
|
public readonly passes: number
|
|
|
|
constructor (command: string, recursiveSummary: RecursiveSummary) {
|
|
super('RECURSIVE_FAIL', `"${command}" failed in ${recursiveSummary.fails.length} packages`)
|
|
|
|
this.fails = recursiveSummary.fails
|
|
this.passes = recursiveSummary.passes
|
|
}
|
|
}
|
|
|
|
export function throwOnCommandFail (command: string, recursiveSummary: RecursiveSummary) {
|
|
if (recursiveSummary.fails.length > 0) {
|
|
throw new RecursiveFailError(command, recursiveSummary)
|
|
}
|
|
}
|