UNPKG

2.98 kBJavaScriptView Raw
1import { EventEmitter, UnavailabilityError } from '@unimodules/core';
2import { setTestDeviceIDAsync } from './AdMob';
3import AdMobNativeModule from './ExpoAdsAdMobRewardedVideoAdManager';
4const moduleName = 'AdMobRewarded';
5const eventNames = [
6 'rewardedVideoDidRewardUser',
7 'rewardedVideoDidLoad',
8 'rewardedVideoDidFailToLoad',
9 'rewardedVideoDidOpen',
10 'rewardedVideoDidStart',
11 'rewardedVideoDidClose',
12 'rewardedVideoWillLeaveApplication',
13];
14const eventEmitter = new EventEmitter(AdMobNativeModule);
15const eventHandlers = {};
16for (const eventName of eventNames) {
17 eventHandlers[eventName] = new Map();
18}
19export default {
20 async setAdUnitID(id) {
21 if (!AdMobNativeModule.setAdUnitID) {
22 throw new UnavailabilityError(moduleName, 'setAdUnitID');
23 }
24 await AdMobNativeModule.setAdUnitID(id);
25 },
26 /** @deprecated Test device IDs are now set globally. Use `AdMob.setTestDeviceIDAsync` instead. */
27 async setTestDeviceID(id) {
28 console.warn('AdMobRewarded.setTestDeviceID is deprecated. Test device IDs are now set globally. Use AdMob.setTestDeviceIDAsync instead.');
29 await setTestDeviceIDAsync(id);
30 },
31 async requestAdAsync(options = {}) {
32 if (!AdMobNativeModule.requestAd) {
33 throw new UnavailabilityError(moduleName, 'requestAdAsync');
34 }
35 const params = {
36 ...options.additionalRequestParams,
37 };
38 if (!options.servePersonalizedAds) {
39 params.npa = '1';
40 }
41 await AdMobNativeModule.requestAd(params);
42 },
43 async showAdAsync() {
44 if (!AdMobNativeModule.showAd) {
45 throw new UnavailabilityError(moduleName, 'showAdAsync');
46 }
47 await AdMobNativeModule.showAd();
48 },
49 async dismissAdAsync() {
50 if (!AdMobNativeModule.dismissAd) {
51 throw new UnavailabilityError(moduleName, 'dismissAdAsync');
52 }
53 await AdMobNativeModule.dismissAd();
54 },
55 async getIsReadyAsync() {
56 if (!AdMobNativeModule.getIsReady) {
57 throw new UnavailabilityError(moduleName, 'getIsReadyAsync');
58 }
59 return await AdMobNativeModule.getIsReady();
60 },
61 addEventListener(type, handler) {
62 if (eventNames.includes(type)) {
63 eventHandlers[type].set(handler, eventEmitter.addListener(type, handler));
64 }
65 else {
66 console.log(`Event with type ${type} does not exist.`);
67 }
68 },
69 removeEventListener(type, handler) {
70 const eventSubscription = eventHandlers[type].get(handler);
71 if (!eventHandlers[type].has(handler) || !eventSubscription) {
72 return;
73 }
74 eventSubscription.remove();
75 eventHandlers[type].delete(handler);
76 },
77 removeAllListeners() {
78 for (const eventName of eventNames) {
79 eventEmitter.removeAllListeners(eventName);
80 }
81 },
82};
83//# sourceMappingURL=AdMobRewarded.js.map
\No newline at end of file