@schibstedspain/openads-appnexus-prebid
Version:
OpenAds AppNexus connector with Prebid features
114 lines (92 loc) • 2.87 kB
JavaScript
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;
;