UNPKG

996 BJavaScriptView Raw
1const cli = require('cli-ux').default
2const chalk = require('chalk')
3const isDockerContainer = require('is-docker')
4
5function unableToOpenBrowserMessage(url, err) {
6 // https://github.com/sindresorhus/log-symbols
7 console.log('---------------------------')
8 const errMsg = err ? `\n${err.message}` : ''
9 const msg = `Error: Unable to open browser automatically${errMsg}\n`
10 console.log(`${chalk.redBright(msg)}`)
11 console.log(chalk.greenBright('Please open your browser & open the URL below to login:'))
12 console.log(chalk.whiteBright(url))
13 console.log('---------------------------')
14 return Promise.resolve()
15}
16
17async function openBrowser(url) {
18 let browser = process.env.BROWSER
19 if (browser === 'none' || isDockerContainer()) {
20 return unableToOpenBrowserMessage(url)
21 }
22 if (process.platform === 'darwin' && browser === 'open') {
23 browser = undefined
24 }
25
26 await cli.open(url).catch(err => {
27 unableToOpenBrowserMessage(url, err)
28 })
29}
30
31module.exports = openBrowser