@schibstedspain/openads-appnexus
Version:
OpenAds AppNexus module for handle ads
122 lines (96 loc) • 3.49 kB
JavaScript
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;
;