Skip to content

@salesforce/b2c-tooling-sdk / cli

cli

CLI utilities and base command classes for building B2C Commerce CLI commands.

This module provides reusable base classes, configuration loading, and table rendering utilities for oclif-based CLI applications.

Base Command Classes

Extend these classes to create CLI commands with pre-configured functionality:

Command Hierarchy

Commands inherit in a chain, each adding specific functionality:

BaseCommand
  └─ OAuthCommand (adds OAuth)
       └─ InstanceCommand (adds instance config)
            ├─ CartridgeCommand (adds cartridge paths)
            ├─ JobCommand (adds job config)
            └─ WebDavCommand (adds WebDAV root config)
       └─ MrtCommand (adds MRT API auth)
       └─ OdsCommand (adds ODS config)

Example Usage

typescript
import { InstanceCommand, createTable, type ColumnDef } from '@salesforce/b2c-tooling-sdk/cli';

export default class ListSites extends InstanceCommand {
  static description = 'List all sites on the instance';

  async run() {
    const client = await this.createOcapiClient();
    const sites = await client.getSites();

    const columns: Record<string, ColumnDef<Site>> = {
      id: { header: 'ID', get: (s) => s.id },
      name: { header: 'Name', get: (s) => s.display_name },
    };

    createTable(columns).render(sites, ['id', 'name']);
  }
}

Configuration Loading

Use loadConfig to resolve configuration from multiple sources:

typescript
import { loadConfig } from '@salesforce/b2c-tooling-sdk/cli';

const config = await loadConfig({
  flags: { hostname: 'example.com' },
  configPath: './dw.json',
});

Table Rendering

Use createTable for consistent tabular output:

typescript
import { createTable, type ColumnDef } from '@salesforce/b2c-tooling-sdk/cli';

const columns: Record<string, ColumnDef<Item>> = {
  id: { header: 'ID', get: (item) => item.id },
  status: { header: 'Status', get: (item) => item.status },
};

createTable(columns).render(items, ['id', 'status']);

Classes

Interfaces

Type Aliases

Variables

Functions

All rights reserved.