From 8b970aab6febb01f47f1ddd4f2f481c52cfcda8f Mon Sep 17 00:00:00 2001 From: Jon Perl Date: Fri, 20 Mar 2020 12:21:55 -0600 Subject: [PATCH 1/3] support "yarn create qawolf --yarn" --- packages/create-qawolf/src/cli.ts | 11 +++++++++-- packages/create-qawolf/src/index.ts | 16 ++++++++++++---- packages/create-qawolf/src/packageJson.ts | 4 ++-- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/packages/create-qawolf/src/cli.ts b/packages/create-qawolf/src/cli.ts index f20c0f865..bbe351081 100644 --- a/packages/create-qawolf/src/cli.ts +++ b/packages/create-qawolf/src/cli.ts @@ -15,12 +15,19 @@ export const logError = (error: Error): void => { } }; -export const logNpmInstall = (packages: Packages): void => { +export const logInstallDependencies = ( + packages: Packages, + useYarn = false, +): void => { console.log(cyan(`Installing dependencies`)); Object.keys(packages).forEach(name => { const version = packages[name]; - console.log(cyan(`npm install --save-dev ${name}@${version}`)); + console.log( + cyan( + `${useYarn ? 'yarn add' : 'npm install --save-dev'} ${name}@${version}`, + ), + ); }); }; diff --git a/packages/create-qawolf/src/index.ts b/packages/create-qawolf/src/index.ts index 75e718765..8edb75f86 100644 --- a/packages/create-qawolf/src/index.ts +++ b/packages/create-qawolf/src/index.ts @@ -2,15 +2,21 @@ import { install as installCi } from 'playwright-ci'; import { logError, - logNpmInstall, + logInstallDependencies, logUseTypeScript, promptRootDir, } from './cli'; import { detectTypeScript, writeConfig } from './config'; -import { addDevDependencies, readPackageJson, npmInstall } from './packageJson'; +import { + addDevDependencies, + readPackageJson, + installDependencies, +} from './packageJson'; (async (): Promise => { try { + const useYarn = process.argv[process.argv.length - 1] === '--yarn'; + // create a new line for yarn create console.log(); @@ -27,8 +33,10 @@ import { addDevDependencies, readPackageJson, npmInstall } from './packageJson'; await writeConfig({ rootDir, useTypeScript }); const packages = await addDevDependencies(useTypeScript); - logNpmInstall(packages); - npmInstall(); + + logInstallDependencies(packages, useYarn); + + installDependencies(useYarn); } catch (error) { logError(error); process.exit(1); diff --git a/packages/create-qawolf/src/packageJson.ts b/packages/create-qawolf/src/packageJson.ts index 9ed2e3710..0d7d1f40a 100644 --- a/packages/create-qawolf/src/packageJson.ts +++ b/packages/create-qawolf/src/packageJson.ts @@ -76,6 +76,6 @@ export const addDevDependencies = async ( return packages; }; -export const npmInstall = (): void => { - execSync('npm install', { stdio: 'inherit' }); +export const installDependencies = (useYarn = false): void => { + execSync(useYarn ? 'yarn' : 'npm install', { stdio: 'inherit' }); }; From 933112436385bc2688015b9b66d9c78167cd8e01 Mon Sep 17 00:00:00 2001 From: Jon Perl Date: Fri, 20 Mar 2020 12:33:35 -0600 Subject: [PATCH 2/3] detect yarn --- packages/create-qawolf/src/cli.ts | 14 +++++++++----- packages/create-qawolf/src/config.ts | 3 +++ packages/create-qawolf/src/index.ts | 13 ++++--------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/packages/create-qawolf/src/cli.ts b/packages/create-qawolf/src/cli.ts index bbe351081..36a06b502 100644 --- a/packages/create-qawolf/src/cli.ts +++ b/packages/create-qawolf/src/cli.ts @@ -1,5 +1,5 @@ import input from '@inquirer/input'; -import { cyan, bold } from 'kleur'; +import { bold, cyan } from 'kleur'; import { getPackageJsonPath } from './packageJson'; import { Packages } from './types'; @@ -17,7 +17,7 @@ export const logError = (error: Error): void => { export const logInstallDependencies = ( packages: Packages, - useYarn = false, + isYarn = false, ): void => { console.log(cyan(`Installing dependencies`)); @@ -25,7 +25,7 @@ export const logInstallDependencies = ( const version = packages[name]; console.log( cyan( - `${useYarn ? 'yarn add' : 'npm install --save-dev'} ${name}@${version}`, + `${isYarn ? 'yarn add' : 'npm install --save-dev'} ${name}@${version}`, ), ); }); @@ -41,8 +41,12 @@ export const logUseTypeScript = (useTypeScript: boolean): void => { ); }; -export const promptRootDir = (): Promise => - input({ +export const promptRootDir = (): Promise => { + // create a line break before our CLI prompt + console.log(); + + return input({ message: 'rootDir: Directory to create tests in', default: '.qawolf', }); +}; diff --git a/packages/create-qawolf/src/config.ts b/packages/create-qawolf/src/config.ts index 3dc4e655e..76de805c8 100644 --- a/packages/create-qawolf/src/config.ts +++ b/packages/create-qawolf/src/config.ts @@ -17,6 +17,9 @@ export const detectTypeScript = async (): Promise => { }); }; +export const detectYarn = (): boolean => + (process.env.npm_execpath || '').includes('yarn'); + export const writeConfig = async ({ rootDir, useTypeScript, diff --git a/packages/create-qawolf/src/index.ts b/packages/create-qawolf/src/index.ts index 8edb75f86..711d41e0f 100644 --- a/packages/create-qawolf/src/index.ts +++ b/packages/create-qawolf/src/index.ts @@ -6,7 +6,7 @@ import { logUseTypeScript, promptRootDir, } from './cli'; -import { detectTypeScript, writeConfig } from './config'; +import { detectTypeScript, detectYarn, writeConfig } from './config'; import { addDevDependencies, readPackageJson, @@ -15,11 +15,6 @@ import { (async (): Promise => { try { - const useYarn = process.argv[process.argv.length - 1] === '--yarn'; - - // create a new line for yarn create - console.log(); - // run this first to ensure package.json await readPackageJson(); @@ -34,9 +29,9 @@ import { const packages = await addDevDependencies(useTypeScript); - logInstallDependencies(packages, useYarn); - - installDependencies(useYarn); + const isYarn = detectYarn(); + logInstallDependencies(packages, isYarn); + installDependencies(isYarn); } catch (error) { logError(error); process.exit(1); From 2a5d319526968b991bd45e43f9fb5b0b25eb0d59 Mon Sep 17 00:00:00 2001 From: Jon Perl Date: Fri, 20 Mar 2020 12:39:28 -0600 Subject: [PATCH 3/3] abc --- packages/create-qawolf/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-qawolf/src/index.ts b/packages/create-qawolf/src/index.ts index 711d41e0f..0e9345e0c 100644 --- a/packages/create-qawolf/src/index.ts +++ b/packages/create-qawolf/src/index.ts @@ -9,8 +9,8 @@ import { import { detectTypeScript, detectYarn, writeConfig } from './config'; import { addDevDependencies, - readPackageJson, installDependencies, + readPackageJson, } from './packageJson'; (async (): Promise => {