storybook/app/angular/src/builders/utils/build-standalone-errors-handler.ts
2022-04-29 00:11:50 +08:00

32 lines
1.1 KiB
TypeScript

import { logger, instance as npmLog } from '@storybook/node-logger';
import dedent from 'ts-dedent';
export const buildStandaloneErrorHandler = (error: any): any => {
// Duplicate code for Standalone error handling
// Source: https://github.com/storybookjs/storybook/blob/39c7ba09ad84fbd466f9c25d5b92791a5450b9f6/lib/core-server/src/build-dev.ts#L136
npmLog.heading = '';
if (error instanceof Error) {
if ((error as any).error) {
logger.error((error as any).error);
} else if ((error as any).stats && (error as any).stats.compilation.errors) {
(error as any).stats.compilation.errors.forEach((e: any) => logger.plain(e));
} else {
logger.error(error as any);
}
} else if (error.compilation?.errors) {
error.compilation.errors.forEach((e: any) => logger.plain(e));
}
logger.line();
return error.close
? dedent`
FATAL broken build!, will close the process,
Fix the error below and restart storybook.
`
: dedent`
Broken build, fix the error above.
You may need to refresh the browser.
`;
};