Command

The Command class allows calling a method or a function.

Implements: ICommand

Description

The Command class allows you to call a method or a function.

Constructors

Creates a new command object and assigns it’s parameters.

public constructor(name: string, schema: Schema, action: IExecutable | (context: IContext, args: Parameters) => Promise)

  • name: string - command name.
  • schema: Schema - schema to validate command arguments.
  • action: IExecutable - function to be executed by this command.

Instance methods

execute

Executes the command. Before execution it validates args using the defined schema.

Raise ApplicationError when execution fails for whatever reason.
See Parameters

public execute(context: IContext, args: Parameters): Promise<any>

  • context: IContext - (optional) a context to trace execution through a call chain.
  • args: Parameters - parameters (arguments) to pass to this command for execution.
  • returns: Promise<any> - execution result

getName

Gets the command name.

public getName(): string

  • returns: string - name of this command.

validate

Validates the command args before execution using the defined schema.

public validate(args: Parameters): ValidationResult[]

  • args: Parameters - parameters (arguments) to validate using this command’s schema.
  • returns: ValidationResult[] - array of ValidationResults or an empty array (if no schema is set).

Examples


       command := NewCommand("add", null, func (ctx context.Context args *exec.Parameters)(any, err) {
		param1 := args.getAsFloat("param1");
		param2 := args.getAsFloat("param2");
		return (param1 + param2), nil;
	});

	result, err := command.Execute(ctx, Parameters.NewParametersFromTuples("param1", 2, "param2", 2))
	if (err) {
		fmt.Println(err)
	} else {
		fmt.Println("2 + 2 = " + result)
	}
		// Console output: 2 + 2 = 4

See also