UNPKG

alks

Version:
62 lines (51 loc) 1.86 kB
import clc from 'cli-color'; import commander from 'commander'; import { checkForUpdate } from '../checkForUpdate'; import { errorAndExit } from '../errorAndExit'; import { log } from '../log'; import Table from 'cli-table3'; import { isEmpty } from 'underscore'; import { Developer } from '../../model/developer'; import { getPassword } from '../state/password'; import { getToken } from '../state/token'; import { getDeveloper } from '../state/developer'; export async function handleAlksDeveloperInfo( _options: commander.OptionValues ) { const table = new Table({ head: [clc.white.bold('Key'), clc.white.bold('Value')], colWidths: [25, 50], }); try { log('getting developer'); const developer = await getDeveloper(); log('getting password'); const password = await getPassword(); log('getting 2fa token'); const token = await getToken(); const mapping: Partial<Record<keyof Developer, string>> = { server: 'ALKS Server', userid: 'Network Login', alksAccount: 'Default ALKS Account', alksRole: 'Default ALKS Role', outputFormat: 'Default Output Format', }; for (const [key, label] of Object.entries(mapping)) { const value = developer[key as keyof Developer]; table.push([label, isEmpty(value) ? '' : value]); } const tablePassword = !isEmpty(password) ? '**********' : clc.red('NOT SET'); table.push(['Password', tablePassword]); const tableToken = !isEmpty(token) ? (token as string).substring(0, 4) + '**********' : clc.red('NOT SET'); table.push(['2FA Token', tableToken]); console.error(clc.white.underline.bold('\nDeveloper Configuration')); console.log(clc.white(table.toString())); await checkForUpdate(); } catch (err) { errorAndExit((err as Error).message, err as Error); } }