@maxverse/media-web-sdk
Version:
54 lines (51 loc) • 2.05 kB
JavaScript
import { createClass as _createClass, classCallCheck as _classCallCheck, classPrivateFieldLooseBase as _classPrivateFieldLooseBase, classPrivateFieldLooseKey as _classPrivateFieldLooseKey } from '../_virtual/_rollupPluginBabelHelpers.mjs';
var _registrations = /*#__PURE__*/_classPrivateFieldLooseKey("registrations");
var _checkValidArgs = /*#__PURE__*/_classPrivateFieldLooseKey("checkValidArgs");
/* eslint-disable @typescript-eslint/no-explicit-any */
var DI = /*#__PURE__*/function () {
function DI() {
var _this = this;
_classCallCheck(this, DI);
Object.defineProperty(this, _registrations, {
writable: true,
value: void 0
});
Object.defineProperty(this, _checkValidArgs, {
writable: true,
value: function value(name, dependencies, func) {
return typeof name === "string" || Array.isArray(dependencies) || typeof func === "function";
}
});
this.register = function (name, dependencies, func) {
if (!_classPrivateFieldLooseBase(_this, _checkValidArgs)[_checkValidArgs](name, dependencies, func)) {
throw new Error(_this.errorMessage);
}
_classPrivateFieldLooseBase(_this, _registrations)[_registrations][name] = {
dependencies: dependencies,
func: func
};
};
this.get = function (name) {
var registeration = _classPrivateFieldLooseBase(_this, _registrations)[_registrations][name];
var dependencies = [];
if (!registeration) {
return undefined;
}
registeration.dependencies.forEach(function (dependencyName) {
var dependency = _this.get(dependencyName);
dependencies.push(dependency);
});
return registeration.func.apply(undefined, dependencies);
};
_classPrivateFieldLooseBase(this, _registrations)[_registrations] = {};
}
_createClass(DI, [{
key: "errorMessage",
get: function get() {
return "registerRequiredArgs: [string, Array<string>, func]";
}
}]);
return DI;
}();
var DI$1 = DI;
export { DI$1 as default };