UNPKG

rn-pendo-sdk

Version:

Pendo Mobile React Native SDK

1 lines 4.44 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.withAndroidProjectGradle=exports.withAndroidPendoActivity=exports.withAndroidAppGradle=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _configPlugins=require("@expo/config-plugins");var _Manifest=require("@expo/config-plugins/build/android/Manifest");var _generateCode=require("@expo/config-plugins/build/utils/generateCode");var _consts=require("./consts");var _log=require("./log");var withAndroidProjectGradle=exports.withAndroidProjectGradle=function withAndroidProjectGradle(config,props){_log.PendoLog.debug('****withAndroidProjectGradle****');return(0,_configPlugins.withProjectBuildGradle)(config,function(config){if(config.modResults.language==='groovy'){var pendoRepo=_consts.DEFAULT_PENDO_REPO;if(props['android-repository']){pendoRepo=props['android-repository'];}config.modResults.contents=appendContents({src:config.modResults.contents,newSrc:`allprojects {\n\trepositories \n\t\t{\n \t\t\t${pendoRepo} \n\t\t}\n\t}`,tag:'rn-pendo-sdk-import',comment:'//'}).contents;}else{throw new Error('Cannot add pendo maven gradle because the build.gradle is not groovy');}return config;});};var withAndroidAppGradle=exports.withAndroidAppGradle=function withAndroidAppGradle(config,props){_log.PendoLog.debug('****withAndroidAppGradle****');return(0,_configPlugins.withAppBuildGradle)(config,function(config){if(config.modResults.language==='groovy'){if(props['android-exclude-google-play']){config.modResults.contents=appendContents({src:config.modResults.contents,newSrc:_consts.PENDO_EXCLUDE_GOOGLE_PLAY_REVIEW,tag:'rn-pendo-sdk-import',comment:'//'}).contents;}}else{throw new Error('Cannot add pendo configuration to gradle because the build.gradle is not groovy');}return config;});};function appendContents(_ref){var src=_ref.src,newSrc=_ref.newSrc,tag=_ref.tag,comment=_ref.comment;var header=(0,_generateCode.createGeneratedHeaderComment)(newSrc,tag,comment);if(!src.includes(header)){var sanitizedTarget=(0,_generateCode.removeGeneratedContents)(src,tag);var contentsToAdd=[header,newSrc,`${comment} @generated end ${tag}`].join('\n');return{contents:sanitizedTarget!=null?sanitizedTarget:src+contentsToAdd,didMerge:true,didClear:!!sanitizedTarget};}return{contents:src,didClear:false,didMerge:false};}function addPendoActivity(_x,_x2,_x3){return _addPendoActivity.apply(this,arguments);}function _addPendoActivity(){_addPendoActivity=(0,_asyncToGenerator2.default)(function*(config,props,androidManifest){var _manifestActivity$int;var application=(0,_Manifest.getMainApplicationOrThrow)(androidManifest);if(!application){_log.PendoLog.warn('addPendoActivity: No .MainApplication?');return androidManifest;}if(!application.activity){_log.PendoLog.debug('addPendoActivity: No activities.');application.activity=[];}if(Array.isArray(application.activity)){var pendoActivity=application.activity.find(function(item){return item.$[_consts.ANDROID_NAME]===_consts.PENDO_ACTIVITY;});if(pendoActivity){_log.PendoLog.debug('addPendoActivity: PendoGateActivity found.');return androidManifest;}}var manifestActivity={'$':{'android:exported':'true','android:launchMode':'singleInstance','android:name':_consts.PENDO_ACTIVITY},'intent-filter':[]};var intentFilter={};intentFilter.action=[];intentFilter.action.push({$:{'android:name':'android.intent.action.VIEW'}});intentFilter.category=[];intentFilter.category.push({$:{'android:name':'android.intent.category.DEFAULT'}});intentFilter.category.push({$:{'android:name':'android.intent.category.BROWSABLE'}});intentFilter.data=[];intentFilter.data.push({$:{'android:scheme':props['android-scheme']}});(_manifestActivity$int=manifestActivity['intent-filter'])==null?void 0:_manifestActivity$int.push(intentFilter);application.activity.push(manifestActivity);return androidManifest;});return _addPendoActivity.apply(this,arguments);}var withAndroidPendoActivity=exports.withAndroidPendoActivity=function withAndroidPendoActivity(config,props){_log.PendoLog.debug('****withAndroidPendoActivity****');return(0,_configPlugins.withAndroidManifest)(config,function(){var _ref2=(0,_asyncToGenerator2.default)(function*(config){config.modResults=yield addPendoActivity(config,props,config.modResults);return config;});return function(_x4){return _ref2.apply(this,arguments);};}());};