UNPKG

@schibstedspain/openads-appnexus-prebid

Version:
114 lines (92 loc) 2.87 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _loglevel = _interopRequireDefault(require("loglevel")); var _LogProvider = _interopRequireDefault(require("./LogProvider")); var _AppNexusConnector = _interopRequireDefault(require("./AppNexusConnector")); var _AstClientImpl = _interopRequireDefault(require("./AstClientImpl")); var _AdListenerRepository = _interopRequireDefault(require("./repository/AdListenerRepository")); var _PrebidClientImpl = _interopRequireDefault(require("./PrebidClientImpl")); var Container = /*#__PURE__*/ function () { function Container(_temp) { var _ref = _temp === void 0 ? {} : _temp, config = _ref.config; this._config = config; this._instances = new Map(); } var _proto = Container.prototype; _proto.getInstance = function getInstance(_ref2) { var key = _ref2.key; if (undefined === this._instances.get(key)) { try { this._instances.set(key, this['_build' + key]()); } catch (e) { throw new Error("Error creating instance: " + key + ": " + e.message); } } return this._instances.get(key); }; _proto._buildAppNexusConnector = function _buildAppNexusConnector() { return new _AppNexusConnector.default({ pageOpts: this._config.pageOpts, prebidConfig: this._config.prebidConfig, loggerProvider: this.getInstance({ key: 'LogProvider' }), logger: this.getInstance({ key: 'Logger' }), astClient: this.getInstance({ key: 'AstClient' }), adRepository: this.getInstance({ key: 'AdRepository' }), prebidClient: this.getInstance({ key: 'PrebidClient' }) }); }; _proto._buildLogger = function _buildLogger() { return this.getInstance({ key: 'LogProvider' }).logger({ loggerName: 'AppNexusConnector' }); }; _proto._buildLogProvider = function _buildLogProvider() { return new _LogProvider.default({ logLevel: _loglevel.default, loggerName: this._config.loggerName, defaultLogLevel: this._config.defaultLogLevel }); }; _proto._buildAstClient = function _buildAstClient() { return new _AstClientImpl.default({ window: window, logger: this.getInstance({ key: 'Logger' }) }); }; _proto._buildAdRepository = function _buildAdRepository() { return new _AdListenerRepository.default({ dom: window.document }); }; _proto._buildPrebidClient = function _buildPrebidClient() { return new _PrebidClientImpl.default({ window: window, logger: this.getInstance({ key: 'Logger' }) }); }; return Container; }(); exports.default = Container;