@condition
The @condition
decorator is used to mark the condition method in a condition block. That method is invoked when the condition block wants to verify if a condition is valid or not. It allows synchronous and asynchronous operation. When synchronous operation is used the decorator method should return true
when the condition is valid or false
when the condition is invalid. When asynchronous operation is used, the method should return the callback
property of the props
argument. When the condition operation completes, the result should be passed to callback.return
(see example below).
It can be used to decorate a method in a ConditionBlock
derived class.
Read more about conditions in the Block conditions guide.
Decorator type
Method ℹ️
Applies to
Decorator signature
@condition
Decorated method signature
(props?: {
callback: Callback<boolean>;
}): boolean | Callback<boolean>;
Decorated method parameters
Name | Type | Optional | Description |
---|---|---|---|
props | object | Yes | Specifies the properties for the condition method. Contains the following properties: - callback : Reference to the Callback instance. Pass this reference as method return value to enable the asynchronous condition callback. |
Return value
Returns true
if the condition is valid, false
when the condition is invalid, or props.callback
to indicate asynchronous operation.
Example
Synchronous example:
import { tripetto, condition, ConditionBlock, Callback } from "@tripetto/runner";
@tripetto({
type: "condition",
identifier: "example-condition-block",
})
class ExampleConditionBlock extends ConditionBlock {
@condition
isValid(): boolean {
// Indicate the condition is valid
return true;
}
}
Asynchronous example:
import { tripetto, condition, ConditionBlock, Callback } from "@tripetto/runner";
@tripetto({
type: "condition",
identifier: "example-condition-block",
})
class ExampleConditionBlock extends ConditionBlock {
@condition
isValid({ callback }: { callback: Callback<boolean> }): Callback<boolean> {
setTimeout(() => {
// After a while, indicate the condition is invalid
callback.return(false);
}, 1000);
return callback;
}
}