From 89e21e49018b9280901cbe1f18f1803f59364c73 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Thu, 2 Jun 2022 20:47:23 +0200 Subject: [PATCH 1/4] chore(repro): add additional files api to sb repro --- lib/cli/src/repro-generators/configs.ts | 5 +++++ lib/cli/src/repro-generators/scripts.ts | 21 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/lib/cli/src/repro-generators/configs.ts b/lib/cli/src/repro-generators/configs.ts index 241819736707..1669b3f3aabb 100644 --- a/lib/cli/src/repro-generators/configs.ts +++ b/lib/cli/src/repro-generators/configs.ts @@ -13,6 +13,11 @@ export interface Parameters { autoDetect?: boolean; /** Dependencies to add before building Storybook */ additionalDeps?: string[]; + /** Files to add before building Storybook */ + additionalFiles?: { + path: string; + contents: string; + }[]; /** Add typescript dependency and creates a tsconfig.json file */ typescript?: boolean; /** Merge configurations to main.js before running the tests */ diff --git a/lib/cli/src/repro-generators/scripts.ts b/lib/cli/src/repro-generators/scripts.ts index 28efd6ce0d24..5ed6032fca1e 100644 --- a/lib/cli/src/repro-generators/scripts.ts +++ b/lib/cli/src/repro-generators/scripts.ts @@ -1,5 +1,5 @@ import path from 'path'; -import { readJSON, writeJSON } from 'fs-extra'; +import { readJSON, writeJSON, outputFile } from 'fs-extra'; import shell, { ExecOptions } from 'shelljs'; import chalk from 'chalk'; import { cra, cra_typescript } from './configs'; @@ -22,6 +22,11 @@ export interface Parameters { ensureDir?: boolean; /** Dependencies to add before building Storybook */ additionalDeps?: string[]; + /** Files to add before building Storybook */ + additionalFiles?: { + path: string; + contents: string; + }[]; /** Add typescript dependency and creates a tsconfig.json file */ typescript?: boolean; } @@ -136,6 +141,18 @@ const generate = async ({ cwd, name, appName, version, generator }: Options) => ); }; +const addAdditionalFiles = async ({ additionalFiles, cwd }: Options) => { + if (!additionalFiles || additionalFiles.length === 0) { + return; + } + + logger.info(`⤵️ Adding required files`); + + additionalFiles.forEach(async (file) => { + await outputFile(path.resolve(cwd, file.path), file.contents, { encoding: 'UTF-8' }); + }); +}; + const initStorybook = async ({ cwd, autoDetect = true, name, e2e }: Options) => { const type = autoDetect ? '' : `--type ${name}`; const linkable = e2e ? '' : '--linkable'; @@ -228,6 +245,8 @@ export const createAndInit = async ( logger.log(); await doTask(generate, { ...options, cwd: options.creationPath }); + console.log({ options }); + await doTask(addAdditionalFiles, { ...options, cwd }); if (e2e) { await doTask(addPackageResolutions, options); } From 27c83576dfa62ef17cb222f880e1ee245cb1a5d5 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Thu, 2 Jun 2022 20:48:43 +0200 Subject: [PATCH 2/4] fix(CLI): fix skip-install flag for angular generator Seems like it changed in version 14. From --skipInstall to --skip-install --- lib/cli/src/repro-generators/configs.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cli/src/repro-generators/configs.ts b/lib/cli/src/repro-generators/configs.ts index 1669b3f3aabb..0b3a39f69a4b 100644 --- a/lib/cli/src/repro-generators/configs.ts +++ b/lib/cli/src/repro-generators/configs.ts @@ -124,7 +124,7 @@ const baseAngular: Parameters = { framework: 'angular', name: 'angular', version: 'latest', - generator: `npx -p @angular/cli@{{version}} ng new {{appName}} --routing=true --minimal=true --style=scss --skipInstall=true --strict`, + generator: `npx -p @angular/cli@{{version}} ng new {{appName}} --routing=true --minimal=true --style=scss --skip-install=true --strict`, }; export const angular10: Parameters = { From e695802103eb519d2b25aa1e8e4d710fe6e98372 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Mon, 6 Jun 2022 13:12:48 +0200 Subject: [PATCH 3/4] chore(repro): improve additional files logic --- lib/cli/src/repro-generators/scripts.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lib/cli/src/repro-generators/scripts.ts b/lib/cli/src/repro-generators/scripts.ts index 5ed6032fca1e..41d5cd94466c 100644 --- a/lib/cli/src/repro-generators/scripts.ts +++ b/lib/cli/src/repro-generators/scripts.ts @@ -142,15 +142,13 @@ const generate = async ({ cwd, name, appName, version, generator }: Options) => }; const addAdditionalFiles = async ({ additionalFiles, cwd }: Options) => { - if (!additionalFiles || additionalFiles.length === 0) { - return; - } - logger.info(`⤵️ Adding required files`); - additionalFiles.forEach(async (file) => { - await outputFile(path.resolve(cwd, file.path), file.contents, { encoding: 'UTF-8' }); - }); + await Promise.all( + additionalFiles.map(async (file) => { + await outputFile(path.resolve(cwd, file.path), file.contents, { encoding: 'UTF-8' }); + }) + ); }; const initStorybook = async ({ cwd, autoDetect = true, name, e2e }: Options) => { @@ -245,8 +243,7 @@ export const createAndInit = async ( logger.log(); await doTask(generate, { ...options, cwd: options.creationPath }); - console.log({ options }); - await doTask(addAdditionalFiles, { ...options, cwd }); + await doTask(addAdditionalFiles, { ...options, cwd }, !!options.additionalFiles); if (e2e) { await doTask(addPackageResolutions, options); } From 4f5b90e897d36935ee797e0a70b5c12386317a12 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Mon, 6 Jun 2022 13:13:57 +0200 Subject: [PATCH 4/4] chore(repro): rewrite additionalFiles description --- lib/cli/src/repro-generators/configs.ts | 2 +- lib/cli/src/repro-generators/scripts.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/cli/src/repro-generators/configs.ts b/lib/cli/src/repro-generators/configs.ts index 0b3a39f69a4b..f1b5b10fcb26 100644 --- a/lib/cli/src/repro-generators/configs.ts +++ b/lib/cli/src/repro-generators/configs.ts @@ -13,7 +13,7 @@ export interface Parameters { autoDetect?: boolean; /** Dependencies to add before building Storybook */ additionalDeps?: string[]; - /** Files to add before building Storybook */ + /** Files to add before installing Storybook */ additionalFiles?: { path: string; contents: string; diff --git a/lib/cli/src/repro-generators/scripts.ts b/lib/cli/src/repro-generators/scripts.ts index 41d5cd94466c..21a608f5fea1 100644 --- a/lib/cli/src/repro-generators/scripts.ts +++ b/lib/cli/src/repro-generators/scripts.ts @@ -22,7 +22,7 @@ export interface Parameters { ensureDir?: boolean; /** Dependencies to add before building Storybook */ additionalDeps?: string[]; - /** Files to add before building Storybook */ + /** Files to add before installing Storybook */ additionalFiles?: { path: string; contents: string;