Skip to content

Commit

Permalink
fix: handle cases where there is no stats to write for the manager
Browse files Browse the repository at this point in the history
Also strengthen the checks for the preview part and improve types.
  • Loading branch information
gaetanmaisse committed Nov 23, 2020
1 parent 20a7f32 commit 9196178
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 12 deletions.
10 changes: 6 additions & 4 deletions lib/core/src/server/build-dev.ts
Expand Up @@ -218,11 +218,13 @@ function outputStartupInformation(options: {
);
}

async function outputStats(previewStats: Stats, managerStats: Stats) {
async function outputStats(previewStats: Stats | undefined, managerStats: Stats | undefined) {
if (previewStats) {
await writeStats('preview', previewStats);
}
await writeStats('manager', managerStats);
if (managerStats) {
await writeStats('manager', managerStats);
}
logger.info(
`stats written to => ${chalk.cyan(resolvePathInStorybookCache('public/[name].json'))}`
);
Expand Down Expand Up @@ -282,9 +284,9 @@ export async function buildDevStandalone(

if (options.smokeTest) {
await outputStats(previewStats, managerStats);
const managerWarnings = (managerStats as any).toJson().warnings.length > 0;
const managerWarnings = !!managerStats && managerStats.toJson().warnings.length > 0;
const previewWarnings =
!options.ignorePreview && (previewStats as any).toJson().warnings.length > 0;
!options.ignorePreview && !!previewStats && previewStats.toJson().warnings.length > 0;
process.exit(managerWarnings || previewWarnings ? 1 : 0);
return;
}
Expand Down
8 changes: 2 additions & 6 deletions lib/core/src/server/dev-server.ts
Expand Up @@ -239,9 +239,7 @@ const startManager = async ({
}

if (!managerConfig) {
// FIXME: This object containing default values should match ManagerResult
// @ts-ignore
return { managerStats: {}, managerTotalTime: 0 } as ManagerResult;
return { managerTotalTime: [0, 0] };
}

const compiler = webpack(managerConfig);
Expand Down Expand Up @@ -279,9 +277,7 @@ const startPreview = async ({
outputDir,
}: any): Promise<PreviewResult> => {
if (options.ignorePreview) {
// FIXME: This object containing default values should match PreviewResult
// @ts-ignore
return { previewStats: {}, previewTotalTime: 0 } as PreviewResult;
return { previewTotalTime: [0, 0] };
}

const previewConfig = await loadConfig({
Expand Down
4 changes: 2 additions & 2 deletions lib/core/src/server/types.ts
Expand Up @@ -94,12 +94,12 @@ export interface ReleaseNotesData {
}

export interface PreviewResult {
previewStats: Stats;
previewStats?: Stats;
previewTotalTime: [number, number];
}

export interface ManagerResult {
managerStats: Stats;
managerStats?: Stats;
managerTotalTime: [number, number];
}

Expand Down

0 comments on commit 9196178

Please sign in to comment.