mirror of
https://github.com/cypress-io/cypress.git
synced 2026-01-05 14:09:46 -06:00
* migrate cli scripts to TypeScript * convert all javascript source files in the CLI to TypeScript rebase into first * chore: refactor all tests to TypeScript rebase into second * add npmignore for cli for typescript files * update build process * fix publically available exports * Fix cy-in-cy tests * add ts-expect-error to failing files * fix projectConfigIpc failures as there are now multiple installs of tsx * fix after-pack hook * fix binary script * chore: update publish binary to account for CLI being an ESModule compiled down to CommonJS * does this work? * fix the verify spec by making the listr2 renderer silent as it behaves differently since the refactor and is printing non deterministic outputs into our tests that do not have a large impact on the area we are testing and mostly served to actually test the renders of the listr2 framework itself * empty commit * additional refactor to code to remove strange any typing and exporting * bump cache and build binaries * fix CLI exports to keep backwards compatibility * fix unit-tests * turn on mac jobs * fix group name rename in CLI * remove babel deps from cli and explicitly install typescript * address feedback from code review * dont just falsy check results and instead explicitly check for null or undefined * add ts-expect-error * additional pass on cleaning up dynamic require / import from global lib references * annotate ts-expect-errors with reason for why error is expected * add rest of ts-expect-error comments * removing hardcoded branch to publish binary chore/migrate_cli_to_typescript
70 lines
1.9 KiB
TypeScript
70 lines
1.9 KiB
TypeScript
import Bluebird from 'bluebird'
|
|
import Debug from 'debug'
|
|
import path from 'path'
|
|
import util from '../util'
|
|
import state from '../tasks/state'
|
|
import { throwFormErrorText, errors } from '../errors'
|
|
|
|
const debug = Debug('cypress:cli')
|
|
|
|
const getVersions = (): any => {
|
|
return Bluebird.try(() => {
|
|
if (util.getEnv('CYPRESS_RUN_BINARY')) {
|
|
let envBinaryPath = path.resolve(util.getEnv('CYPRESS_RUN_BINARY') as string)
|
|
|
|
return state.parseRealPlatformBinaryFolderAsync(envBinaryPath)
|
|
.then((envBinaryDir: any) => {
|
|
if (!envBinaryDir) {
|
|
return throwFormErrorText(errors.CYPRESS_RUN_BINARY.notValid(envBinaryPath))()
|
|
}
|
|
|
|
debug('CYPRESS_RUN_BINARY has binaryDir:', envBinaryDir)
|
|
|
|
return envBinaryDir
|
|
})
|
|
.catch({ code: 'ENOENT' }, (err: any) => {
|
|
return throwFormErrorText(errors.CYPRESS_RUN_BINARY.notValid(envBinaryPath))(err.message)
|
|
})
|
|
}
|
|
|
|
return state.getBinaryDir()
|
|
})
|
|
.then(state.getBinaryPkgAsync)
|
|
.then((pkg: any) => {
|
|
const versions = {
|
|
binary: state.getBinaryPkgVersion(pkg),
|
|
electronVersion: state.getBinaryElectronVersion(pkg),
|
|
electronNodeVersion: state.getBinaryElectronNodeVersion(pkg),
|
|
}
|
|
|
|
debug('binary versions %o', versions)
|
|
|
|
return versions
|
|
})
|
|
.then((binaryVersions: any) => {
|
|
const buildInfo = util.pkgBuildInfo()
|
|
|
|
let packageVersion = util.pkgVersion()
|
|
|
|
if (!buildInfo) packageVersion += ' (development)'
|
|
else if (!buildInfo.stable) packageVersion += ' (pre-release)'
|
|
|
|
const versions = {
|
|
package: packageVersion,
|
|
binary: binaryVersions.binary || 'not installed',
|
|
electronVersion: binaryVersions.electronVersion || 'not found',
|
|
electronNodeVersion: binaryVersions.electronNodeVersion || 'not found',
|
|
}
|
|
|
|
debug('combined versions %o', versions)
|
|
|
|
return versions
|
|
})
|
|
}
|
|
|
|
const versionsModule = {
|
|
getVersions,
|
|
}
|
|
|
|
export default versionsModule
|