@robotlegsjs/signalcommandmap
Version:
TypeScript port of Robotlegs Extensions SignalCommandMap
73 lines • 3.27 kB
JavaScript
"use strict";
// ------------------------------------------------------------------------------
// Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
//
// NOTICE: You are permitted to use, modify, and distribute this file
// in accordance with the terms of the license agreement accompanying it.
// ------------------------------------------------------------------------------
Object.defineProperty(exports, "__esModule", { value: true });
exports.SignalCommandTrigger = void 0;
var core_1 = require("@robotlegsjs/core");
/**
* @private
*/
var SignalCommandTrigger = /** @class */ (function () {
/*============================================================================*/
/* Constructor */
/*============================================================================*/
/**
* @private
*/
function SignalCommandTrigger(injector, signalClass, processors, logger) {
var _this = this;
/*============================================================================*/
/* Private Functions */
/*============================================================================*/
this._routePayloadToCommands = function () {
var valueObjects = [];
for (var _i = 0; _i < arguments.length; _i++) {
valueObjects[_i] = arguments[_i];
}
var valueClasses = _this._signal.valueClasses;
var payload = new core_1.CommandPayload(valueObjects, valueClasses);
_this._executor.executeCommands(_this._mappings.getList(), payload);
};
this._injector = injector;
this._signalClass = signalClass;
this._mappings = new core_1.CommandMappingList(this, processors ? processors : [], logger);
this._executor = new core_1.CommandExecutor(injector, this._mappings.removeMapping.bind(this._mappings));
}
/*============================================================================*/
/* Public Functions */
/*============================================================================*/
/**
* @private
*/
SignalCommandTrigger.prototype.createMapper = function () {
return new core_1.CommandMapper(this._mappings);
};
/**
* @inheritDoc
*/
SignalCommandTrigger.prototype.activate = function () {
if (!this._injector.isBound(this._signalClass)) {
this._injector.bind(this._signalClass).to(this._signalClass).inSingletonScope();
}
this._signal = this._injector.get(this._signalClass);
this._signal.add(this._routePayloadToCommands);
};
/**
* @inheritDoc
*/
SignalCommandTrigger.prototype.deactivate = function () {
if (this._signal) {
this._signal.remove(this._routePayloadToCommands);
}
};
SignalCommandTrigger.prototype.toString = function () {
return this._signalClass.toString();
};
return SignalCommandTrigger;
}());
exports.SignalCommandTrigger = SignalCommandTrigger;
//# sourceMappingURL=SignalCommandTrigger.js.map