async function printServerInfo () {
  await ProjectSettings.readPackagerInfoAsync(projectDir)
  // who knows why qrcode-terminal takes a callback instead of just returning a string
  const address = await UrlUtils.constructManifestUrlAsync(projectDir)
  let emulatorHelp
  if (process.platform === 'darwin') {
    emulatorHelp = `Press ${chalk.bold('a')} (Android) or ${chalk.bold('i')} (iOS) to start an emulator.`
  } else {
    emulatorHelp = `Press ${chalk.bold('a')} to start an Android emulator.`
  }
  qr.generate(address, qrCode => {
    log(`
${indent(qrCode, 2)}
Your app is now running at URL: ${chalk.underline(chalk.cyan(address))}
${chalk.bold('View your app with live reloading:')}
  ${chalk.underline('Android device:')}
    -> Point the Expo app to the QR code above.
       (You'll find the QR scanner on the Projects tab of the app.)
  ${chalk.underline('iOS device:')}
    -> Press ${chalk.bold('s')} to email/text the app URL to your phone.
  ${chalk.underline('Emulator:')}
    -> ${emulatorHelp}
Your phone will need to be on the same local network as this computer.
For links to install the Expo app, please visit ${chalk.underline(chalk.cyan('https://expo.io'))}.
Logs from serving your app will appear here. Press Ctrl+C at any time to stop.`
    )
    printUsage()
  })
}
async function printServerInfo () {
  await ProjectSettings.readPackagerInfoAsync(projectDir)
  // who knows why qrcode-terminal takes a callback instead of just returning a string
  const address = await UrlUtils.constructManifestUrlAsync(projectDir)
  let emulatorHelp
  if (process.platform === 'darwin') {
    emulatorHelp = `Press ${chalk.bold('a')} (Android) or ${chalk.bold('i')} (iOS) to start an emulator.`
  } else {
    emulatorHelp = `Press ${chalk.bold('a')} to start an Android emulator.`
  }
  qr.generate(address, qrCode => {
    log(`
${indent(qrCode, 2)}
Your app is now running at URL: ${chalk.underline(chalk.cyan(address))}
${chalk.bold('View your app with live reloading:')}
  ${chalk.underline('Android device:')}
    -> Point the Expo app to the QR code above.
       (You'll find the QR scanner on the Projects tab of the app.)
  ${chalk.underline('iOS device:')}
    -> Press ${chalk.bold('s')} to email/text the app URL to your phone.
  ${chalk.underline('Emulator:')}
    -> ${emulatorHelp}
Your phone will need to be on the same local network as this computer.
For links to install the Expo app, please visit ${chalk.underline(chalk.cyan('https://expo.io'))}.
Logs from serving your app will appear here. Press Ctrl+C at any time to stop.`
    )
    printUsage()
  })
}
async function printServerInfo ( ) { await ProjectSettings . readPackagerInfoAsync ( projectDir ) // who knows why qrcode-terminal takes a callback instead of just returning a string const address = await UrlUtils . constructManifestUrlAsync ( projectDir ) let emulatorHelp if ( process . platform === 'darwin' ) { emulatorHelp = ` ${ chalk . bold ( 'a' ) } ${ chalk . bold ( 'i' ) } ` } else { emulatorHelp = ` ${ chalk . bold ( 'a' ) } ` } qr . generate ( address , qrCode => { log ( ` ${ indent ( qrCode , 2 ) } ${ chalk . underline ( chalk . cyan ( address ) ) } ${ chalk . bold ( 'View your app with live reloading:' ) } ${ chalk . underline ( 'Android device:' ) } ${ chalk . underline ( 'iOS device:' ) } ${ chalk . bold ( 's' ) } ${ chalk . underline ( 'Emulator:' ) } ${ emulatorHelp } ${ chalk . underline ( chalk . cyan ( 'https://expo.io' ) ) } ` ) printUsage ( ) } ) }
print a nicely formatted message with setup information
print a nicely formatted message with setup information
Print server info