From 59137b3f9c77916e10405e31cc97d3f4c59fb0fd Mon Sep 17 00:00:00 2001 From: Simon Jentsch Date: Tue, 2 Mar 2021 11:30:02 +0100 Subject: [PATCH] fix(cli): Force exit on error --- packages/cli/src/containers/StepContainer.tsx | 3 +++ packages/cli/src/containers/StepRunner.tsx | 3 +++ packages/cli/src/utils/useExitOnError.ts | 9 +++++++++ 3 files changed, 15 insertions(+) create mode 100644 packages/cli/src/utils/useExitOnError.ts diff --git a/packages/cli/src/containers/StepContainer.tsx b/packages/cli/src/containers/StepContainer.tsx index f73070f8..b93d8076 100644 --- a/packages/cli/src/containers/StepContainer.tsx +++ b/packages/cli/src/containers/StepContainer.tsx @@ -7,6 +7,7 @@ import { ErrorMessage } from '../components/ErrorMessage'; import { SuccessMessage } from '../components/SuccessMessage'; import { ValidationError } from '../errors'; import { useConfig } from '../config/configContext'; +import { useExitOnError } from '../utils/useExitOnError'; export type StepContainerProps = { steps: StepRunnerStep[]; @@ -19,6 +20,8 @@ export function StepContainer({ steps, validator }: StepContainerProps) { const [validationDone, setValidationDone] = React.useState(false); const [runtime, setRuntime] = React.useState(0); + useExitOnError(validationError); + React.useEffect(() => { if (validator) { try { diff --git a/packages/cli/src/containers/StepRunner.tsx b/packages/cli/src/containers/StepRunner.tsx index 1c80c3c3..d10dffeb 100644 --- a/packages/cli/src/containers/StepRunner.tsx +++ b/packages/cli/src/containers/StepRunner.tsx @@ -8,6 +8,7 @@ import { Config } from '../config'; import { useConfig } from '../config/configContext'; import { ErrorMessage } from '../components/ErrorMessage'; import { Dependency, FileContent, OutputFileContent, StoryFileWithMetadata } from '../types'; +import { useExitOnError } from '../utils/useExitOnError'; export type StepOutput = { files?: OutputFileContent[]; @@ -93,6 +94,8 @@ export function StepRunner({ const filteredSteps = React.useMemo(() => steps.filter(step => !step.if || step.if()), [steps]); + useExitOnError(error); + React.useEffect(() => { setStartTime(new Date()); }, []); diff --git a/packages/cli/src/utils/useExitOnError.ts b/packages/cli/src/utils/useExitOnError.ts new file mode 100644 index 00000000..e50aa399 --- /dev/null +++ b/packages/cli/src/utils/useExitOnError.ts @@ -0,0 +1,9 @@ +import { useEffect } from 'react'; + +export function useExitOnError(error: any) { + useEffect(() => { + if (error) { + setTimeout(() => process.exit(1)); + } + }, [error]); +}