UNPKG

@schibstedspain/openads-appnexus

Version:
122 lines (96 loc) 3.49 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _map = require('babel-runtime/core-js/map'); var _map2 = _interopRequireDefault(_map); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _loglevel = require('loglevel'); var _loglevel2 = _interopRequireDefault(_loglevel); var _LogProvider = require('./LogProvider'); var _LogProvider2 = _interopRequireDefault(_LogProvider); var _AppNexusConnector = require('./AppNexusConnector'); var _AppNexusConnector2 = _interopRequireDefault(_AppNexusConnector); var _AstClientImpl = require('./AstClientImpl'); var _AstClientImpl2 = _interopRequireDefault(_AstClientImpl); var _ApnTagWrapper = require('./ApnTagWrapper'); var _ApnTagWrapper2 = _interopRequireDefault(_ApnTagWrapper); var _AdListenerRepository = require('./repository/AdListenerRepository'); var _AdListenerRepository2 = _interopRequireDefault(_AdListenerRepository); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Container = function () { function Container() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, config = _ref.config; (0, _classCallCheck3.default)(this, Container); this._config = config; this._instances = new _map2.default(); } (0, _createClass3.default)(Container, [{ key: 'getInstance', value: 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); } }, { key: '_buildAppNexusConnector', value: function _buildAppNexusConnector() { return new _AppNexusConnector2.default({ pageOpts: this._config.pageOpts, loggerProvider: this.getInstance({ key: 'LogProvider' }), logger: this.getInstance({ key: 'Logger' }), astClient: this.getInstance({ key: 'AstClient' }), adRepository: this.getInstance({ key: 'AdRepository' }) }); } }, { key: '_buildLogger', value: function _buildLogger() { return this.getInstance({ key: 'LogProvider' }).logger({ loggerName: 'AppNexusConnector' }); } }, { key: '_buildLogProvider', value: function _buildLogProvider() { return new _LogProvider2.default({ logLevel: _loglevel2.default, loggerName: this._config.loggerName, defaultLogLevel: this._config.defaultLogLevel }); } }, { key: '_buildAstClient', value: function _buildAstClient() { return new _AstClientImpl2.default({ logger: this.getInstance({ key: 'Logger' }), apnTag: this.getInstance({ key: 'ApnTag' }) }); } }, { key: '_buildAdRepository', value: function _buildAdRepository() { return new _AdListenerRepository2.default({ dom: window.document }); } }, { key: '_buildApnTag', value: function _buildApnTag() { return _ApnTagWrapper2.default.build(); } }]); return Container; }(); exports.default = Container;