UNPKG

@robotlegsjs/signalcommandmap

Version:

TypeScript port of Robotlegs Extensions SignalCommandMap

72 lines 3.33 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.SignalCommandMap = void 0; var tslib_1 = require("tslib"); var core_1 = require("@robotlegsjs/core"); var SignalCommandTrigger_1 = require("./SignalCommandTrigger"); /** * @private */ var SignalCommandMap = /** @class */ (function () { /*============================================================================*/ /* Constructor */ /*============================================================================*/ /** * @private */ function SignalCommandMap(context) { /*============================================================================*/ /* Private Properties */ /*============================================================================*/ this._mappingProcessors = []; this._injector = context.injector; this._triggerMap = new core_1.CommandTriggerMap(this._getKey, this._createTrigger.bind(this)); } /*============================================================================*/ /* Public Functions */ /*============================================================================*/ /** * @inheritDoc */ SignalCommandMap.prototype.map = function (signalClass) { return this._getTrigger(signalClass).createMapper(); }; /** * @inheritDoc */ SignalCommandMap.prototype.unmap = function (signalClass) { return this._getTrigger(signalClass).createMapper(); }; SignalCommandMap.prototype.addMappingProcessor = function (handler) { if (this._mappingProcessors.indexOf(handler) === -1) { this._mappingProcessors.push(handler); } return this; }; /*============================================================================*/ /* Private Functions */ /*============================================================================*/ SignalCommandMap.prototype._createTrigger = function (signalClass) { return new SignalCommandTrigger_1.SignalCommandTrigger(this._injector, signalClass, this._mappingProcessors); }; SignalCommandMap.prototype._getTrigger = function (signalClass) { return this._triggerMap.getTrigger(signalClass); }; SignalCommandMap.prototype._getKey = function (signalClass) { return signalClass; }; SignalCommandMap = tslib_1.__decorate([ core_1.injectable(), tslib_1.__param(0, core_1.inject(core_1.IContext)), tslib_1.__metadata("design:paramtypes", [Object]) ], SignalCommandMap); return SignalCommandMap; }()); exports.SignalCommandMap = SignalCommandMap; //# sourceMappingURL=SignalCommandMap.js.map