Options
All
  • Public
  • Public/Protected
  • All
Menu

Class BaseCommand Abstract

description

The abstract definition of a command line script that the backend runtime can execute. Commands refer to routines that handle scoped business layer logic and that may or may not run on a separate process in the background.

Note that cronjobs, for example, should always use commands to execute their business logic as this permits to further augment the access to cronjobs for the team.

since

v0.2.0

Hierarchy

Index

Constructors

Properties

argv: string[] = []

The arguments passed to the command. Typically, this holds required parameters of commands.

access

protected

var

{string[]}

dappConfig: DappConfig

The internal dApp configuration object. This object is used to configure key functionalities such as the name of a dApp and the enabled scopes of the backend runtime.

access

protected

var

{DappConfig}

logger: LogService
networkConfig: NetworkConfig

The internal dApp network configuration object. This object is used to configure the access to the underlying blockchain network.

access

protected

var

{NetworkConfig}

scope: string = "worker"

The command scope. This is the scope that must be enabled through the configuration files for this command to be available.

Child classes must overwrite the value of this property.

access

protected

var

{Scope}

Requires state information of the module. This object is typically populated upon first execution and updated any time later.

see

StateService

access

protected

var

{StateDocument}

stateService: StateService

Accessors

  • get command(): string
  • This method must return a command name. Note that it should use only characters of: A-Za-z0-9:-_.

    e.g. "scope:name"

    abstract
    access

    protected

    Returns string

  • get signature(): string
  • This method must return a command signature that contains hints on the command name and its required and optional arguments.

    e.g. "command [--option value]"

    abstract
    access

    protected

    Returns string

  • get stateIdentifier(): string
  • Getter for the discovery state identifier, e.g. "discovery.accounts", "discovery.transactions", "payout.outputs" etc.

    This method is an implementation necessary because of the extensions of StatefulModule.

    see

    StatefulModule

    access

    public

    var

    {string}

    Returns string

Methods

  • debugLog(message: string): void
  • errorLog(message: string, stack?: string): void
  • getStateData(): any
  • This helper method should return the latest execution state such that it can be saved.

    Execution states refer to one module's required state data, potentially necessary during execution, and which is fetched in run before execution and updated in run after execution (using the name as an identifier).

    access

    protected

    Returns any

  • infoLog(message: string): void
  • This method is the entry point of any command line executed command. nest-commander implements a flow where this method is called with parameters that are respectively the raw arguments and the parsed arguments to this command call.

    This method uses the stateService to fetch the current execution and also uses it to update the state.

    Note that the runWithOptions method is called inside a try-catch block to force the error handling process.

    access

    public

    Parameters

    Returns Promise<void>

  • This method must implement the actual business logic of the command being developed. Classes that extend this command base class must implement this method as it represents the entry point of command line executed commands.

    Note that with each command comes their own command line arguments, these must be correctly typed and must augment the BaseCommandOptions interface.

    abstract

    Parameters

    Returns Promise<void>

  • usage(): string
  • This method prints usage information to the command line and is used by nest-commander to print a correctly formatted help message.

    Note that usage methods can be overwritten but must always print a standard command line signature.

    access

    public

    Returns string

Generated using TypeDoc