Options
All
  • Public
  • Public/Protected
  • All
Menu

NPM

Description

This package contains the base command class for Salesforce CLI, SfdxCommand. Extend this class for convenient access to common Salesforce CLI parameters, a logger, CLI output formatting, scratch orgs, and Dev Hubs. This class extends @oclif/command and is available within a plug-in generated by Salesforce Plug-In Generator.

Usage

Check Your Salesforce CLI Version

Commands that extend SfdxCommand can only be used with Salesforce CLI version 6.8.2 or later. To check your Salesforce CLI version:

$ sfdx version
sfdx-cli/6.42.0-ae478b3cb8 (darwin-x64) node-v8.9.4

Features

To learn more about the features of the Command Library see the Salesforce CLI Plug-In Developer Guide.

Contributing

If you are interested in contributing, please take a look at the CONTRIBUTING guide.

Development

If you are interested in building this package locally, please take a look at the DEVELOPING doc.

Related Docs and Repositories

Issues

Please report any issues here: https://github.com/forcedotcom/cli/issues

Index

Type aliases

Deprecation

Deprecation: { message?: undefined | string; to?: undefined | string } & { version: number | string } | { messageOverride: string }

A deprecation configuration type. A typical instance can pass name, type, and version for a standard message. Alternatively, the messageOverride can be used as a special case deprecated message. Used when defining a deprecation on a command or flag.

DeprecationDefinition

DeprecationDefinition: { message?: undefined | string; to?: undefined | string } & { name: string; type: string; version: number | string } | { messageOverride: string }

A deprecation warning message configuration type. A typical instance can pass name, type, and version for a standard message. Alternatively, the messageOverride can be used as a special case deprecated message. Used when formating a deprecation message.

FlagType

FlagType: flags.Any<unknown> & { name: string }

FlagsConfig

FlagsConfig: { apiversion?: flags.Builtin; concise?: flags.Builtin; quiet?: flags.Builtin; targetdevhubusername?: undefined; targetusername?: undefined; verbose?: flags.Builtin }

The configuration of flags for an SfdxCommand class, except for the following:

  • json and loglevel are configured automatically for all SfdxCommand classes.
  • targetusername is enabled using either SfdxCommand.supportsUsername or SfdxCommand.requiresUsername.
  • targetdevhubusername is enabled using either SfdxCommand.supportsDevhubUsername or SfdxCommand.requiresDevhubUsername.

Additionally, apiversion is enabled automatically if any of the static *Username booleans are set, but may be configured here explicitly as well if those settings are not required.

public static flagsConfig: FlagsConfig = {
  name: flags.string({ char: 'n', required: true, description: 'name of the resource to create' }),
  source: flags.directory({ char: 'd', required: true, description: 'path of the source directory to sync' }),
  wait: flags.minutes({ description: 'number of minutes to wait for creation' }),
  notify: flags.url({ description: 'url to notify upon completion' })
};

Type declaration

  • [key: string]: Optional<flags.Boolean<unknown> | flags.Option<unknown> | flags.Builtin>
  • Optional apiversion?: flags.Builtin

    Adds the apiversion built-in flag to allow for overriding the API version when executing the command.

  • Optional concise?: flags.Builtin

    Adds the concise built-in flag to allow a command to support concise output, which is useful when the output can be overly verbose, such as test results. Note that this must be implemented by the command.

  • Optional quiet?: flags.Builtin

    Adds the quiet built-in flag to allow a command to completely suppress output. Note that this must be implemented by the command.

  • Optional targetdevhubusername?: undefined
  • Optional targetusername?: undefined
  • Optional verbose?: flags.Builtin

    Adds the verbose built-in flag to allow a command to support verbose output, which is useful to display additional command results. Note that this must be implemented by the command.

FlagsType

FlagsType: FlagType[]

TableOptions

TableOptions: Partial<OclifTableOptions> | string[]

A table option configuration type. May be a detailed configuration, or more simply just a string array in the simple cases where table header values are the only desired config option.

VarargsConfig

VarargsConfig: { required: boolean; validator?: undefined | ((name: string, value: string) => void) } | boolean

Defines a varargs configuration. If set to true, there will be no validation and varargs will not be required. The validator function should throw an error if validation fails.

Variables

Const $$

$$: TestContext = testSetup()

Const messages

messages: Messages = Messages.loadMessages('@salesforce/command', 'flags')

Const test

test: Base<Context, { skip: { args: []; output: unknown } } & { only: { args: []; output: unknown } } & { retries: { args: []; output: unknown } } & { catch: { args: []; output: { error: Error } } } & { env: { args: []; output: unknown } } & { stub: { args: []; output: { stubs: any[] } } } & { stdin: { args: []; output: unknown } } & { stderr: { args: []; output: { stderr: string } } } & { stdout: { args: []; output: { stdout: string } } } & { nock: { args: []; output: { nock: number } } } & { timeout: { args: []; output: { timeout: number } } } & { loadConfig: { args: []; output: { config: IConfig } } } & { command: { args: []; output: { config: IConfig; expectation: string } } } & { exit: { args: []; output: { error: any } } } & { hook: { args: []; output: { config: IConfig; expectation: string } } } & {} & {} & {}> = oclifTest.test.register('withOrg', withOrg).register('withConnectionRequest', withConnectionRequest).register('withProject', withProject)

Functions

buildArray

  • buildArray(options: flags.Array<string>): flags.Discriminated<flags.Array<string>>
  • buildArray<T>(options: flags.MappedArray<T>): flags.Discriminated<flags.Array<T>>
  • Parameters

    • options: flags.Array<string>

    Returns flags.Discriminated<flags.Array<string>>

  • Type parameters

    • T

    Parameters

    • options: flags.MappedArray<T>

    Returns flags.Discriminated<flags.Array<T>>

buildBoolean

  • buildBoolean<T>(options: flags.Boolean<T>): flags.Discriminated<flags.Boolean<T>>
  • Type parameters

    • T

    Parameters

    • options: flags.Boolean<T>

    Returns flags.Discriminated<flags.Boolean<T>>

buildBuiltin

  • buildBuiltin(options?: Partial<flags.Builtin>): flags.Builtin
  • Parameters

    • Default value options: Partial<flags.Builtin> = {}

    Returns flags.Builtin

buildDate

  • buildDate(options: flags.DateTime): flags.Discriminated<flags.DateTime>
  • Parameters

    • options: flags.DateTime

    Returns flags.Discriminated<flags.DateTime>

buildDatetime

  • buildDatetime(options: flags.DateTime): flags.Discriminated<flags.DateTime>
  • Parameters

    • options: flags.DateTime

    Returns flags.Discriminated<flags.DateTime>

buildDirectory

  • buildDirectory(options: flags.String): flags.Discriminated<flags.String>
  • Parameters

    • options: flags.String

    Returns flags.Discriminated<flags.String>

buildEmail

  • buildEmail(options: flags.String): flags.Discriminated<flags.String>
  • Parameters

    • options: flags.String

    Returns flags.Discriminated<flags.String>

buildEnum

  • buildEnum<T>(options: flags.Enum<T>): flags.Discriminated<flags.Enum<T>>
  • Type parameters

    • T

    Parameters

    • options: flags.Enum<T>

    Returns flags.Discriminated<flags.Enum<T>>

buildFilepath

  • buildFilepath(options: flags.String): flags.Discriminated<flags.String>
  • Parameters

    • options: flags.String

    Returns flags.Discriminated<flags.String>

buildHelp

  • buildHelp(options: flags.BaseBoolean<boolean>): flags.Discriminated<flags.Boolean<void>>
  • Parameters

    • options: flags.BaseBoolean<boolean>

    Returns flags.Discriminated<flags.Boolean<void>>

buildId

  • buildId(options: flags.String): flags.Discriminated<flags.String>
  • Parameters

    • options: flags.String

    Returns flags.Discriminated<flags.String>

buildInteger

  • buildInteger(options: flags.Number): flags.Discriminated<flags.Number>
  • Parameters

    • options: flags.Number

    Returns flags.Discriminated<flags.Number>

buildMappedArray

  • buildMappedArray<T>(kind: flags.Kind, options: flags.MappedArray<T>): flags.Discriminated<flags.Array<T>>
  • Type parameters

    • T

    Parameters

    • kind: flags.Kind
    • options: flags.MappedArray<T>

    Returns flags.Discriminated<flags.Array<T>>

buildMilliseconds

  • buildMilliseconds(options: flags.Milliseconds): flags.Discriminated<flags.Milliseconds>
  • Parameters

    • options: flags.Milliseconds

    Returns flags.Discriminated<flags.Milliseconds>

buildMinutes

  • buildMinutes(options: flags.Minutes): flags.Discriminated<flags.Minutes>
  • Parameters

    • options: flags.Minutes

    Returns flags.Discriminated<flags.Minutes>

buildNumber

  • buildNumber(options: flags.Number): flags.Discriminated<flags.Number>
  • Parameters

    • options: flags.Number

    Returns flags.Discriminated<flags.Number>

buildOption

  • buildOption<T>(options: { parse: (val: string, ctx: unknown) => T } & flags.Option<T>): flags.Discriminated<flags.Option<T>>
  • Type parameters

    • T

    Parameters

    • options: { parse: (val: string, ctx: unknown) => T } & flags.Option<T>

    Returns flags.Discriminated<flags.Option<T>>

buildSeconds

  • buildSeconds(options: flags.Seconds): flags.Discriminated<flags.Seconds>
  • Parameters

    • options: flags.Seconds

    Returns flags.Discriminated<flags.Seconds>

buildString

  • buildString(options: flags.String): flags.Discriminated<flags.String>
  • Parameters

    • options: flags.String

    Returns flags.Discriminated<flags.String>

buildStringArray

  • buildStringArray(kind: flags.Kind, options: flags.Array<string>): flags.Discriminated<flags.Array<string>>
  • Parameters

    • kind: flags.Kind
    • options: flags.Array<string>

    Returns flags.Discriminated<flags.Array<string>>

buildUrl

  • buildUrl(options: flags.Url): flags.Discriminated<flags.Url>
  • Parameters

    • options: flags.Url

    Returns flags.Discriminated<flags.Url>

buildVersion

  • buildVersion(options?: flags.BaseBoolean<boolean>): flags.Discriminated<flags.Boolean<void>>
  • Parameters

    • Optional options: flags.BaseBoolean<boolean>

    Returns flags.Discriminated<flags.Boolean<void>>

Const convertArrayFlagToArray

  • convertArrayFlagToArray(flagValue: string, delimiter?: string): string[]
  • Parameters

    • flagValue: string
    • Default value delimiter: string = ","

    Returns string[]

find

  • find(orgs: Dictionary<JsonMap>, predicate: (val: JsonMap) => boolean): Optional<JsonMap>
  • Parameters

    • orgs: Dictionary<JsonMap>
    • predicate: (val: JsonMap) => boolean
        • (val: JsonMap): boolean
        • Parameters

          • val: JsonMap

          Returns boolean

    Returns Optional<JsonMap>

isBuiltin

  • isBuiltin(flag: object): flag is flags.Builtin

merge

  • merge<T>(kind: flags.Kind, flag: IOptionFlag<T | undefined>, describable: flags.Describable): flags.Discriminated<flags.Option<T>>
  • merge<T>(kind: flags.Kind, flag: IBooleanFlag<T>, describable: flags.Describable): flags.Discriminated<flags.Boolean<T>>
  • Type parameters

    • T

    Parameters

    • kind: flags.Kind
    • flag: IOptionFlag<T | undefined>
    • describable: flags.Describable

    Returns flags.Discriminated<flags.Option<T>>

  • Type parameters

    • T

    Parameters

    • kind: flags.Kind
    • flag: IBooleanFlag<T>
    • describable: flags.Describable

    Returns flags.Discriminated<flags.Boolean<T>>

option

  • option<T>(kind: flags.Kind, options: flags.Option<T>, parse: (val: string, ctx: unknown) => T): flags.Discriminated<flags.Option<T>>
  • Type parameters

    • T

    Parameters

    • kind: flags.Kind
    • options: flags.Option<T>
    • parse: (val: string, ctx: unknown) => T
        • (val: string, ctx: unknown): T
        • Parameters

          • val: string
          • ctx: unknown

          Returns T

    Returns flags.Discriminated<flags.Option<T>>

resolve

  • resolve(opts: Optional<flags.Builtin>, key: keyof flags.Builtin, def: string): string
  • Parameters

    • opts: Optional<flags.Builtin>
    • key: keyof flags.Builtin
    • def: string

    Returns string

toValidatorFn

  • toValidatorFn(validator?: unknown): (val: string) => boolean
  • Parameters

    • Optional validator: unknown

    Returns (val: string) => boolean

      • (val: string): boolean
      • Parameters

        • val: string

        Returns boolean

validateArrayOptions

  • validateArrayOptions<T>(kind: flags.Kind, raw: string, vals: T[], allowed: Set<T>): void
  • Type parameters

    • T

    Parameters

    • kind: flags.Kind
    • raw: string
    • vals: T[]
    • allowed: Set<T>

    Returns void

validateArrayValues

  • validateArrayValues(kind: flags.Kind, raw: string, vals: string[], validator?: string | RegExp | ((val: string) => boolean)): void
  • Parameters

    • kind: flags.Kind
    • raw: string
    • vals: string[]
    • Optional validator: string | RegExp | ((val: string) => boolean)

    Returns void

validateBounds

  • validateBounds<T>(kind: flags.Kind, value: number, bounds: flags.Bounds<T>, extract: (t: T) => number): number
  • Type parameters

    • T

    Parameters

    • kind: flags.Kind
    • value: number
    • bounds: flags.Bounds<T>
    • extract: (t: T) => number
        • (t: T): number
        • Parameters

          • t: T

          Returns number

    Returns number

validateCustomFlag

  • validateCustomFlag<T>(key: string, flag: flags.Any<T>): flags.Any<T>
  • Validate the custom flag configuration. This includes:

    • The flag name is in all lowercase.
    • A string description is provided.
    • If a char attribute is provided, it is one alphabetical character in length.
    • If a long description is provided, it is a string.
    throws

    SfdxError If the criteria is not meet.

    Type parameters

    • T

    Parameters

    • key: string

      The flag name.

    • flag: flags.Any<T>

      The flag configuration.

    Returns flags.Any<T>

validateValue

  • validateValue(isValid: boolean, value: string, kind: string, correct?: undefined | string): string
  • Parameters

    • isValid: boolean
    • value: string
    • kind: string
    • Optional correct: undefined | string

    Returns string

Const withConnectionRequest

  • withConnectionRequest(fakeFunction: (request: AnyJson, options?: AnyJson) => Promise<AnyJson>): Plugin<Dictionary>
  • Parameters

    • fakeFunction: (request: AnyJson, options?: AnyJson) => Promise<AnyJson>
        • (request: AnyJson, options?: AnyJson): Promise<AnyJson>
        • Parameters

          • request: AnyJson
          • Optional options: AnyJson

          Returns Promise<AnyJson>

    Returns Plugin<Dictionary>

Const withOrg

  • withOrg(org?: Partial<AuthFields>, setAsDefault?: boolean): Plugin<Dictionary>
  • Parameters

    • Default value org: Partial<AuthFields> = {}
    • Default value setAsDefault: boolean = true

    Returns Plugin<Dictionary>

Const withProject

  • withProject(sfdxProjectJson?: JsonMap): Plugin<unknown>

Object literals

Const optionalBuiltinFlags

optionalBuiltinFlags: object

apiversion

  • apiversion(opts?: flags.Builtin): flags.Discriminated<flags.String>
  • Parameters

    • Optional opts: flags.Builtin

    Returns flags.Discriminated<flags.String>

concise

  • concise(opts?: flags.Builtin): flags.Discriminated<flags.Boolean<boolean>>
  • Parameters

    • Optional opts: flags.Builtin

    Returns flags.Discriminated<flags.Boolean<boolean>>

quiet

  • quiet(opts?: flags.Builtin): flags.Discriminated<flags.Boolean<boolean>>
  • Parameters

    • Optional opts: flags.Builtin

    Returns flags.Discriminated<flags.Boolean<boolean>>

targetdevhubusername

  • targetdevhubusername(opts?: flags.Builtin): flags.Discriminated<flags.String>
  • Parameters

    • Optional opts: flags.Builtin

    Returns flags.Discriminated<flags.String>

targetusername

  • targetusername(opts?: flags.Builtin): flags.Discriminated<flags.String>
  • Parameters

    • Optional opts: flags.Builtin

    Returns flags.Discriminated<flags.String>

verbose

  • verbose(opts?: flags.Builtin): flags.Discriminated<flags.Boolean<boolean>>
  • Parameters

    • Optional opts: flags.Builtin

    Returns flags.Discriminated<flags.Boolean<boolean>>

Const requiredBuiltinFlags

requiredBuiltinFlags: object

json

  • json(): flags.Discriminated<flags.Boolean<boolean>>

loglevel

  • loglevel(): flags.Discriminated<flags.Enum<string>>