UNPKG

bhive

Version:
53 lines (45 loc) 1.2 kB
const BaseDecorator = require('../core/BaseDecorator'); const {FAILURE, SUCCESS, ERROR} = require('../constants'); /** * Class Invert the result of the child * * if child returns `SUCCESS` --> Inverter returns `FAILURE` * if child returns `FAILURE` --> Inverter returns `SUCCESS` * if child returns `RUNNING` --> Inverter returns `RUNNING` * * @category Decorators * @extends BaseDecorator **/ class Inverter extends BaseDecorator { /** * Creates an instance of Inverter. * @constructor * @param {Object} params * @param {BaseNode} params.child */ constructor({child = null} = {}) { super({ child, type: 'Inverter', }); } /** * Context method. * @override * @param {Context} context A run instance. * @return {NodeStatus} A state constant. **/ run(context) { if (!this.child) { return ERROR; } let status = this.child.tick(context); if (status === SUCCESS) { status = FAILURE; } else if (status === FAILURE) { status = SUCCESS; } return status; } } module.exports = Inverter;