如何像 mysql-client-cli 一样在 oclif-cli 中显示 table 中的数据库检索数据?

How to display db retrieved data in table in oclif-cli like mysql-client-cli?

我正在使用 OCLIF Framework 和 TypeScript 开发 CLI 工具,我命令 returns 数据库中的所有值,在检索之前一切正常,但我希望显示检索到的数据就像终端中的表格。

是否有任何插件或其他东西可以帮助将 CLI 设计成这样显示?

你看过 cli-ux table 函数了吗?

import {Command} from '@oclif/command'
import {cli} from 'cli-ux'

export default class Users extends Command {
  static flags = {
    ...cli.table.flags()
  }

  async run() {
    const {flags} = this.parse(Users)
    /* ... */

    cli.table(users, {
      name: {
        minWidth: 7,
      },
      company: {
        get: row => row.company && row.company.name
      }
    }, {
      printLine: this.log,
      ...flags, // parsed flags
    })
  }
}

结果:

$ example-cli users
Name                     Company
Leanne Graham            Romaguera-Crona
Ervin Howell             Deckow-Crist
Clementine Bauch         Romaguera-Jacobson
Patricia Lebsack         Robel-Corkery
Chelsey Dietrich         Keebler LLC
Mrs. Dennis Schulist     Considine-Lockman
Kurtis Weissnat          Johns Group
Nicholas Runolfsdottir V Abernathy Group
Glenna Reichert          Yost and Sons
Clementina DuBuque       Hoeger LLC