From 933112436385bc2688015b9b66d9c78167cd8e01 Mon Sep 17 00:00:00 2001 From: Jon Perl Date: Fri, 20 Mar 2020 12:33:35 -0600 Subject: [PATCH] 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);