@robotlegsjs/signalcommandmap
Version:
TypeScript port of Robotlegs Extensions SignalCommandMap
72 lines • 3.33 kB
JavaScript
;
// ------------------------------------------------------------------------------
// 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