diff --git a/apps/cli/src/commands/benchmark/register.ts b/apps/cli/src/commands/benchmark/register.ts index 6fae6f96..20b3a738 100644 --- a/apps/cli/src/commands/benchmark/register.ts +++ b/apps/cli/src/commands/benchmark/register.ts @@ -1,18 +1,19 @@ import { CommandModule } from 'yargs'; import fs from 'fs-extra'; import got from 'got'; +import ora from 'ora'; export const benchmarkRegisterCommand: CommandModule = { - command: 'register', - describe: 'Create Tailchat temp account and output token', + command: 'register ', + describe: 'Create Tailchat temporary account and output token', builder: (yargs) => yargs - .option('url', { - describe: 'Backend Url', - demandOption: true, - type: 'string', - }) - .option('accountPath', { + .example( + '$0 benchmark register http://127.0.0.1:11000', + 'Register account in local server' + ) + .demandOption('url', 'Backend Url') + .option('file', { describe: 'Account Token Path', demandOption: true, type: 'string', @@ -27,7 +28,13 @@ export const benchmarkRegisterCommand: CommandModule = { async handler(args) { const count = args.count as number; const tokens: string[] = []; + const start = Date.now(); + + const spinner = ora().info(`Register temporary account`).start(); + for (let i = 0; i < count; i++) { + spinner.text = `Progress: ${i + 1}/${count}`; + const token = await registerTemporaryAccount( args.url as string, `benchUser-${i}` @@ -35,7 +42,11 @@ export const benchmarkRegisterCommand: CommandModule = { tokens.push(token); } - await fs.writeFile(args.accountPath as string, tokens.join('\n')); + spinner.info(`Writing tokens into path: ${args.file}`); + + await fs.writeFile(args.file as string, tokens.join('\n')); + + spinner.succeed(`Register completed! Usage: ${Date.now() - start}ms`); }, }; @@ -49,7 +60,7 @@ async function registerTemporaryAccount( nickname, }, }) - .json<{ token: string }>(); + .json<{ data: { token: string } }>(); - return res.token; + return res.data.token; }