Files
typescript-domain/dist/PortResolver.js
2020-10-28 22:49:37 +01:00

32 lines
1.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PortResolver = void 0;
var PortResolver = /** @class */ (function () {
function PortResolver() {
this._container = {};
}
PortResolver.prototype.register = function (name, fn) {
this._container[name] = fn;
};
PortResolver.prototype.registerInstance = function (name, fn) {
var _instance = null;
var getInstance = function (fn) {
return function () {
if (!_instance) {
_instance = fn();
}
return _instance;
};
};
this._container[name] = getInstance(fn);
};
PortResolver.prototype.resolve = function (name) {
if (name in this._container && typeof this._container[name] == 'function') {
return this._container[name]();
}
throw new Error('PortResolver can not resolve ' + name);
};
return PortResolver;
}());
exports.PortResolver = PortResolver;
//# sourceMappingURL=PortResolver.js.map