32 lines
1.1 KiB
JavaScript
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
|