UNPKG

react-native-aps

Version:
177 lines (137 loc) 4.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AdLoader = void 0; var _reactNative = require("react-native"); var _AdError = require("./AdError"); var _AdLoaderModule = _interopRequireDefault(require("./internal/AdLoaderModule")); var _AdLoaderEvent = require("./types/AdLoaderEvent"); var _AdLoaderOptions = require("./types/AdLoaderOptions"); var _AdType = require("./types/AdType"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * @public */ class AdLoader { constructor(adType, adLoaderOptions) { this.adType = adType; this.adLoaderOptions = adLoaderOptions; _defineProperty(this, "loaderId", void 0); this.loaderId = AdLoader._adLoaders++; } /** * Create a banner AdLoader instance. * @param adLoaderOptions - `BannerAdLoaderOptions` object used to configure the bid request. * @returns AdLoader instance. */ static createBannerAdLoader(adLoaderOptions) { try { (0, _AdLoaderOptions.validateBannerAdLoaderOptions)(adLoaderOptions); } catch (e) { if (e instanceof Error) { throw new Error(`AdLoader.createBannerAdLoader(*) ${e.message}`); } } const adLoader = new AdLoader(_AdType.AdType.BANNER, adLoaderOptions); return adLoader; } /** * Create a interstitial AdLoader instance. * @param adLoaderOptions - `AdLoaderOptions` object used to configure the bid request. * @returns AdLoader instance. */ static createInterstitialAdLoader(adLoaderOptions) { try { (0, _AdLoaderOptions.validateAdLoaderOptions)(adLoaderOptions); } catch (e) { if (e instanceof Error) { throw new Error(`AdLoader.createInterstitialAdLoader(*) ${e.message}`); } } const adLoader = new AdLoader(_AdType.AdType.INTERSTITIAL, adLoaderOptions); return adLoader; } /** * Add a listener for the bid response. Supported events are: * - `AdLoaderEvent.SUCCESS` * - `AdLoaderEvent.FAILURE` * @param eventName - The name of the event to listen. * @param listener - The listener to be called when the event is fired. * * @returns Unsubscribe function. * * @public */ addListener(eventName, listener) { if (!(0, _AdLoaderEvent.isAdLoaderEvent)(eventName)) { throw new Error(`AdLoader.addListener(*) 'eventName' expected one of AdLoaderEvent values`); } if (typeof listener !== 'function') { throw new Error(`AdLoader.addListener(_, *) 'listener' expected a function`); } const subscribtion = AdLoader._eventEmitter.addListener(eventName, payload => { if (payload.loaderId !== this.loaderId) { return; } let error; if (payload.userInfo) { error = _AdError.AdError.fromNativeError(payload); } listener(error || payload.response); }); return () => subscribtion.remove(); } /** * Request APS for a bid. Only a single ad size and slotUUID is supported per bid request. * This method will return a promise that resolves a bid response requested by this call. * In order to receive further bid responses returned by auto refresh, you must register listeners via `addListener()`. * @returns Promise of key value pairs from returned bid response. * * @public */ async loadAd() { try { return await AdLoader._nativeModule.loadAd(this.loaderId, this.adType, this.adLoaderOptions); } catch (error) { if (error.userInfo) { throw _AdError.AdError.fromNativeError(error); } else { throw error; } } } /** * Stop the auto refresh of the ad. * * @public */ stopAutoRefresh() { AdLoader._nativeModule.stopAutoRefresh(this.loaderId); } /** * In order for SKAdNetwork to work, pass the app event. * @param name - The name of the event. * @param info - The data/info with the event. * * @public */ static skadnHelper(name, info) { if (typeof name !== 'string') { throw new Error("AdLoader.skadnHelper(*) 'name' expected a string value"); } if (info && typeof info !== 'string') { throw new Error("AdLoader.skadnHelper(*) 'info' expected a string value"); } if (_reactNative.Platform.OS !== 'ios') { return; } return AdLoader._nativeModule.skadnHelper(name, info); } } exports.AdLoader = AdLoader; _defineProperty(AdLoader, "_nativeModule", _AdLoaderModule.default); _defineProperty(AdLoader, "_eventEmitter", new _reactNative.NativeEventEmitter(_AdLoaderModule.default)); _defineProperty(AdLoader, "_adLoaders", 0); //# sourceMappingURL=AdLoader.js.map