UNPKG

2.61 kBJavaScriptView Raw
1import { EventEmitter } from '@unimodules/core';
2import { UnavailabilityError } from '@unimodules/core';
3import AdMobNativeModule from './ExpoAdsAdMobInterstitialManager';
4const moduleName = 'AdMobInterstitial';
5const eventNames = [
6 'interstitialDidLoad',
7 'interstitialDidFailToLoad',
8 'interstitialDidOpen',
9 'interstitialDidClose',
10 'interstitialWillLeaveApplication',
11];
12const eventEmitter = new EventEmitter(AdMobNativeModule);
13const eventHandlers = {};
14for (const eventName of eventNames) {
15 eventHandlers[eventName] = new Map();
16}
17export default {
18 async setAdUnitID(id) {
19 if (!AdMobNativeModule.setAdUnitID) {
20 throw new UnavailabilityError(moduleName, 'setAdUnitID');
21 }
22 await AdMobNativeModule.setAdUnitID(id);
23 },
24 async setTestDeviceID(id) {
25 if (!AdMobNativeModule.setTestDeviceID) {
26 throw new UnavailabilityError(moduleName, 'setTestDeviceID');
27 }
28 await AdMobNativeModule.setTestDeviceID(id);
29 },
30 async requestAdAsync() {
31 if (!AdMobNativeModule.requestAd) {
32 throw new UnavailabilityError(moduleName, 'requestAdAsync');
33 }
34 await AdMobNativeModule.requestAd();
35 },
36 async showAdAsync() {
37 if (!AdMobNativeModule.showAd) {
38 throw new UnavailabilityError(moduleName, 'showAdAsync');
39 }
40 await AdMobNativeModule.showAd();
41 },
42 async dismissAdAsync() {
43 if (!AdMobNativeModule.dismissAd) {
44 throw new UnavailabilityError(moduleName, 'dismissAdAsync');
45 }
46 await AdMobNativeModule.dismissAd();
47 },
48 async getIsReadyAsync() {
49 if (!AdMobNativeModule.getIsReady) {
50 throw new UnavailabilityError(moduleName, 'getIsReadyAsync');
51 }
52 return await AdMobNativeModule.getIsReady();
53 },
54 addEventListener(type, handler) {
55 if (eventNames.includes(type)) {
56 eventHandlers[type].set(handler, eventEmitter.addListener(type, handler));
57 }
58 else {
59 console.log(`Event with type ${type} does not exist.`);
60 }
61 },
62 removeEventListener(type, handler) {
63 const eventSubscription = eventHandlers[type].get(handler);
64 if (!eventHandlers[type].has(handler) || !eventSubscription) {
65 return;
66 }
67 eventSubscription.remove();
68 eventHandlers[type].delete(handler);
69 },
70 removeAllListeners() {
71 for (const eventName of eventNames) {
72 eventEmitter.removeAllListeners(eventName);
73 }
74 },
75};
76//# sourceMappingURL=AdMobInterstitial.js.map
\No newline at end of file