UNPKG

2.67 kBJavaScriptView Raw
1import { EventEmitter } from '@unimodules/core';
2import { UnavailabilityError } from '@unimodules/core';
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 async setTestDeviceID(id) {
27 if (!AdMobNativeModule.setTestDeviceID) {
28 throw new UnavailabilityError(moduleName, 'setTestDeviceID');
29 }
30 await AdMobNativeModule.setTestDeviceID(id);
31 },
32 async requestAdAsync() {
33 if (!AdMobNativeModule.requestAd) {
34 throw new UnavailabilityError(moduleName, 'requestAdAsync');
35 }
36 await AdMobNativeModule.requestAd();
37 },
38 async showAdAsync() {
39 if (!AdMobNativeModule.showAd) {
40 throw new UnavailabilityError(moduleName, 'showAdAsync');
41 }
42 await AdMobNativeModule.showAd();
43 },
44 async dismissAdAsync() {
45 if (!AdMobNativeModule.dismissAd) {
46 throw new UnavailabilityError(moduleName, 'dismissAdAsync');
47 }
48 await AdMobNativeModule.dismissAd();
49 },
50 async getIsReadyAsync() {
51 if (!AdMobNativeModule.getIsReady) {
52 throw new UnavailabilityError(moduleName, 'getIsReadyAsync');
53 }
54 return await AdMobNativeModule.getIsReady();
55 },
56 addEventListener(type, handler) {
57 if (eventNames.includes(type)) {
58 eventHandlers[type].set(handler, eventEmitter.addListener(type, handler));
59 }
60 else {
61 console.log(`Event with type ${type} does not exist.`);
62 }
63 },
64 removeEventListener(type, handler) {
65 const eventSubscription = eventHandlers[type].get(handler);
66 if (!eventHandlers[type].has(handler) || !eventSubscription) {
67 return;
68 }
69 eventSubscription.remove();
70 eventHandlers[type].delete(handler);
71 },
72 removeAllListeners() {
73 for (const eventName of eventNames) {
74 eventEmitter.removeAllListeners(eventName);
75 }
76 },
77};
78//# sourceMappingURL=AdMobRewarded.js.map
\No newline at end of file