UNPKG

@robotlegsjs/core

Version:

An architecture-based IoC framework for JavaScript/TypeScript

80 lines 3.38 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.CommandTriggerMap = void 0; /** * @private */ var CommandTriggerMap = /** @class */ (function () { /*============================================================================*/ /* Constructor */ /*============================================================================*/ /** * Creates a command trigger map * * @param keyFactory Factory function to creates keys * @param triggerFactory Factory function to create triggers */ function CommandTriggerMap(keyFactory, triggerFactory) { /*============================================================================*/ /* Private Properties */ /*============================================================================*/ this._triggers = new Map(); this._keyFactory = keyFactory; this._triggerFactory = triggerFactory; } /*============================================================================*/ /* Public Functions */ /*============================================================================*/ /** * @private */ CommandTriggerMap.prototype.getTrigger = function () { var params = []; for (var _i = 0; _i < arguments.length; _i++) { params[_i] = arguments[_i]; } var key = this._getKey(params); var trigger = this._triggers.get(key); if (!trigger) { trigger = this._createTrigger(params); this._triggers.set(key, trigger); } return trigger; }; /** * @private */ CommandTriggerMap.prototype.removeTrigger = function () { var params = []; for (var _i = 0; _i < arguments.length; _i++) { params[_i] = arguments[_i]; } return this._destroyTrigger(this._getKey(params)); }; /*============================================================================*/ /* Private Functions */ /*============================================================================*/ CommandTriggerMap.prototype._getKey = function (mapperArgs) { return this._keyFactory.apply(null, mapperArgs); }; CommandTriggerMap.prototype._createTrigger = function (mapperArgs) { return this._triggerFactory.apply(null, mapperArgs); }; CommandTriggerMap.prototype._destroyTrigger = function (key) { var trigger = this._triggers.get(key); if (trigger) { trigger.deactivate(); this._triggers.delete(key); } return trigger; }; return CommandTriggerMap; }()); exports.CommandTriggerMap = CommandTriggerMap; //# sourceMappingURL=CommandTriggerMap.js.map