react-native-expo-moengage
Version:
MoEngage Expo plugin for integrating MoEngage React-Native SDK
38 lines (37 loc) • 1.75 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const config_plugins_1 = require("@expo/config-plugins");
const withMoEngageAndroid_1 = __importDefault(require("./android/withMoEngageAndroid"));
const apple_1 = require("./apple");
const defaultProps = {
android: {
disableMoEngageDefaultBackupFile: false,
isExpoNotificationIntegration: false,
shouldIncludeMoEngageFirebaseMessagingService: false,
includeFirebaseMessagingDependencies: false,
configFilePath: 'assets/moengage/android_initilisation_config.xml',
},
apple: {
configFilePath: 'assets/moengage/MoEngage-Config.plist',
pushNotificationImpressionTrackingEnabled: true,
richPushNotificationEnabled: false,
pushTemplatesEnabled: false,
deviceTriggerEnabled: false,
liveActivityTargetPath: '',
},
};
/**
* Configure MoEngage SDK in your Expo app
*/
const withMoEngage = (config, props) => {
// Apply default values or handle undefined props
const pluginProps = props ? Object.assign(Object.assign(Object.assign({}, defaultProps), props), { android: Object.assign(Object.assign({}, defaultProps.android), props.android), apple: Object.assign(Object.assign({}, defaultProps.apple), props.apple) }) : defaultProps;
config = (0, withMoEngageAndroid_1.default)(config, pluginProps);
config = (0, apple_1.withMoEngageIos)(config, pluginProps);
return config;
};
const pkg = require('../package.json');
exports.default = (0, config_plugins_1.createRunOncePlugin)(withMoEngage, pkg.name, pkg.version);