UNPKG

@robotlegsjs/signalcommandmap

Version:

TypeScript port of Robotlegs Extensions SignalCommandMap

73 lines 3.27 kB
"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