XYOracleNetwork/clients

View on GitHub
packages/cli/src/index.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { assertEx } from '@xylabs/assert'

import {
  connect, printLogo, restart, setTerminalTitle, stop,
} from './lib/index.js'
import { startTerminal } from './terminal/index.js'

const main = async () => {
  setTerminalTitle()
  await printLogo()
  await restart()
  const connectedNodeModule = await connect()
  setTerminalTitle('XYO (Connected)')
  await startTerminal(assertEx(connectedNodeModule, () => 'Tried to connect to a remote module that was not a NodeModule'))
}

let exitStatus = 0

main()
  .then(() => {
    console.log('Finishing,...')
  })
  .catch(() => {
    console.log('Excepting,...')
    exitStatus = 1
  })
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
  .finally(async () => {
    await stop()
    // eslint-disable-next-line unicorn/no-process-exit
    process.exit(exitStatus)
  })