---
editLink: false
lastUpdated: false
---

[@salesforce/b2c-tooling-sdk](../../modules.md) / [cli](../index.md) / selectColumns

# Function: selectColumns()

> **selectColumns**\<`T`\>(`flags`, `renderer`, `defaults`, `warn`): `string`[]

Defined in: [packages/b2c-tooling-sdk/src/cli/columns.ts:149](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/5f9b348d598ad92ddf670da42e944b204395bdc8/packages/b2c-tooling-sdk/src/cli/columns.ts#L149)

Resolves which columns a list-style command should render. Mirrors the
pattern duplicated across all `*List` commands:

- If `flags.columns === 'id,name'` is provided, validate against the
  renderer's known keys; warn (and fall back to defaults) when no valid keys
  remain.
- If `flags.extended` is set, return every column key (including those
  marked `extended: true`).
- Otherwise, return the supplied default set.

## Type Parameters

### T

`T`

Row type (carried through the renderer).

## Parameters

### flags

[`ColumnFlags`](../interfaces/ColumnFlags.md)

The command's parsed `--columns` / `--extended` values. The
  parameter accepts the wider [ColumnFlags](../interfaces/ColumnFlags.md) shape, so callers can pass
  `this.flags` directly even when the inferred type contains additional
  fields.

### renderer

[`TableRenderer`](../classes/TableRenderer.md)\<`T`\>

The [TableRenderer](../classes/TableRenderer.md) backing the table — used for
  key validation and to enumerate keys in extended mode.

### defaults

`string`[]

Fallback set returned when neither flag overrides the
  selection.

### warn

[`WarnFn`](../type-aliases/WarnFn.md) = `console.warn`

Optional warn callback invoked when `--columns` is provided
  but no key validates; defaults to `console.warn`.

## Returns

`string`[]

Ordered list of column keys to render.
