diff --git a/src/install/installer.ts b/src/install/installer.ts index 08739b0873d37..f38d270bafedd 100644 --- a/src/install/installer.ts +++ b/src/install/installer.ts @@ -22,7 +22,7 @@ import * as removeFolder from 'rimraf'; import * as lockfile from 'proper-lockfile'; import * as browserPaths from '../utils/browserPaths'; import * as browserFetcher from './browserFetcher'; -import { getFromENV } from '../utils/utils'; +import { getAsBooleanFromENV } from '../utils/utils'; const fsMkdirAsync = util.promisify(fs.mkdir.bind(fs)); const fsReaddirAsync = util.promisify(fs.readdir.bind(fs)); @@ -33,7 +33,7 @@ const fsWriteFileAsync = util.promisify(fs.writeFile.bind(fs)); const removeFolderAsync = util.promisify(removeFolder); export async function installBrowsersWithProgressBar(packagePath: string) { - if (getFromENV('PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD')) { + if (getAsBooleanFromENV('PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD')) { browserFetcher.logPolitely('Skipping browsers download because `PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD` env variable is set'); return false; } diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 9781f112e3a2c..001408816eb34 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -95,11 +95,19 @@ export function isUnderTest(): boolean { return _isUnderTest; } -export function getFromENV(name: string) { +export function getFromENV(name: string): string | undefined { let value = process.env[name]; - value = value || process.env[`npm_config_${name.toLowerCase()}`]; - value = value || process.env[`npm_package_config_${name.toLowerCase()}`]; - return value; + if (value !== undefined) + return value; + value = process.env[`npm_config_${name.toLowerCase()}`]; + if (value !== undefined) + return value; + return process.env[`npm_package_config_${name.toLowerCase()}`]; +} + +export function getAsBooleanFromENV(name: string): boolean { + const value = getFromENV(name); + return !!value && value !== 'false' && value !== '0'; } export async function mkdirIfNeeded(filePath: string) {