alwaysai
Version:
The alwaysAI command-line interface (CLI)
43 lines (40 loc) • 1.59 kB
text/typescript
import chalk from 'chalk';
import { createLeaf, UsageError } from '@alwaysai/alwayscli';
import { getCurrentUser } from '../../util/cognito-auth';
import { alwaysaiUserEmailCliInput } from '../../cli-inputs/alwaysai-user-email-cli-input';
import { alwaysaiUserPasswordCliInput } from '../../cli-inputs/alwaysai-user-password-cli-input';
import { yesCliInput } from '../../cli-inputs/yes-cli-input';
import { alwaysaiUserPromptedLoginComponent } from '../../components/alwaysai-user-prompted-login-component';
import { RequiredWithYesMessage } from '../../util/required-with-yes-message';
import { alwaysaiUserLoginComponent } from '../../components/alwaysai-user-login-component';
import { echo } from '../../util/echo';
export const userLogin = createLeaf({
name: 'login',
description: 'Log in to the alwaysAI Cloud',
options: {
yes: yesCliInput,
email: alwaysaiUserEmailCliInput,
password: alwaysaiUserPasswordCliInput,
},
async action(_, { yes, email, password }) {
if (yes) {
if (!email || !password) {
throw new UsageError(RequiredWithYesMessage('email', 'password'));
}
await alwaysaiUserLoginComponent({
alwaysaiUserEmail: email,
alwaysaiUserPassword: password,
});
} else {
const cognitoUser = await getCurrentUser();
if (cognitoUser) {
echo(`Already logged in as ${chalk.bold(cognitoUser.getUsername())}`);
} else {
await alwaysaiUserPromptedLoginComponent({
alwaysaiUserEmail: email,
alwaysaiUserPassword: password,
});
}
}
},
});