/sf-plugins-core

Primary LanguageTypeScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

NPM

Description

The @salesforce/sf-plugins-core provides utilities for writing sf plugins.

Docs: https://salesforcecli.github.io/sf-plugins-core

SfCommand Abstract Class

The SfCommand abstract class extends @oclif/core's Command class for examples of how to build a definition. ) class and adds useful extensions to ease the development of commands for use in the Salesforce Unified CLI.

  • SfCommand takes a generic type that defines the success JSON result
  • Enable the json flag support by default
  • Provides functions that help place success messages, warnings and errors into the correct location in JSON results
  • Enables additional help sections to the standard oclif command help output
  • Provides access to the cli-ux cli actions. This avoids having to import that interface from cli-ux and manually handling the --json flag.
  • Provides simple, stubbable prompts for confirmation and secrets

Flags

Flags is a convenience reference to @oclif/core#Flags

Specialty Flags

These flags can be imported into a command and used like any other flag. See code examples in the links

  • orgApiVersionFlag
    • specifies a Salesforce API version.
    • reads from Config (if available)
    • validates version is still active
    • warns if version if deprecated
  • requiredOrgFlag
    • accepts a username or alias
    • aware of configuration defaults
    • throws if org or default doesn't exist or can't be found
  • optionalOrgFlag
    • accepts a username or alias
    • aware of configuration defaults
    • might be undefined if an org isn't found
  • requiredHubFlag
    • accepts a username or alias
    • aware of configuration defaults
    • throws if org or default doesn't exist or can't be found
    • throws if an org is found but is not a dev hub
  • durationFlag
    • specify a unit
    • optionally specify a min, max, and defaultValue
    • returns a Duration
    • can be undefined if you don't set the default
  • salesforceIdFlag
    • validates that IDs are valid salesforce ID
    • optionally restrict to 15/18 char
    • optionally require it to be begin with a certain prefix

Unit Test Helpers

Want to verify SfCommand Ux behavior (warnings, tables, spinners, prompts)? Check out the functions in `stubUx``.