UNPKG

@maxverse/media-web-sdk

Version:
54 lines (51 loc) 2.05 kB
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 };