mAAdhaTTah/brookjs

View on GitHub
packages/brookjs-cli/src/commands/BuildCommand/View.tsx

Summary

Maintainability
A
1 hr
Test Coverage
import Spinner from 'ink-spinner';
import { Box, Color } from 'ink';
import React from 'react';
import { Maybe } from 'brookjs-types';
import webpack from 'webpack';
import { ExitError, useExit } from '../../cli';
import { Built, BuildErrors } from '../components';
import { RC } from '../../webpack';
 
const Building: React.FC<{}> = () => (
<Box>
<Color green>
<Spinner type="arrow3" />
</Color>
<Box paddingLeft={1}>Building application...</Box>
</Box>
);
 
const RCNotLoaded: React.FC = () => {
useExit(new ExitError(1));
 
return <Color red>RC file not loaded. Cannot build.</Color>;
};
 
const RCInvalid: React.FC<{ message: string }> = ({ message }) => {
useExit(new ExitError(1));
 
return <Color red>RC file invalid. {message}</Color>;
};
 
const View: React.FC<{
rc: Maybe<RC>;
building: boolean;
results: Maybe<Error | webpack.Stats>;
watch: Maybe<boolean>;
Function `View` has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
}> = props => {
if (props.rc == null) {
return <RCNotLoaded />;
}
 
if (props.rc instanceof Error) {
return <RCInvalid message={props.rc.message} />;
}
 
if (props.building) {
return <Building />;
}
 
if (props.results instanceof Error) {
return (
<BuildErrors watch={!!props.watch} errors={[props.results.message]} />
);
}
 
if (!props.watch && props.results!.hasErrors()) {
const { errors, warnings } = props.results!.toJson('errors-warnings');
 
Avoid too many `return` statements within this function.
return (
<BuildErrors watch={!!props.watch} errors={[...errors, ...warnings]} />
);
}
 
Avoid too many `return` statements within this function.
return <Built results={props.results!} watch={!!props.watch} />;
};
 
export default View;