UNPKG

@stripe/stripe-react-native

Version:
2 lines 4.64 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;exports.setApplePayEntitlement=setApplePayEntitlement;exports.setGooglePayMetaData=setGooglePayMetaData;exports.setOnrampGradleProperty=setOnrampGradleProperty;exports.withNoopSwiftFile=void 0;var _configPlugins=require("@expo/config-plugins");var _path=_interopRequireDefault(require("path"));var _AndroidConfig$Manife=_configPlugins.AndroidConfig.Manifest,addMetaDataItemToMainApplication=_AndroidConfig$Manife.addMetaDataItemToMainApplication,getMainApplicationOrThrow=_AndroidConfig$Manife.getMainApplicationOrThrow,removeMetaDataItemFromMainApplication=_AndroidConfig$Manife.removeMetaDataItemFromMainApplication;var pkg=require('@stripe/stripe-react-native/package.json');var withStripe=function withStripe(config,props){config=withStripeIos(config,props);config=withNoopSwiftFile(config);config=withStripeAndroid(config,props);return config;};var withStripeIos=function withStripeIos(expoConfig,_ref){var merchantIdentifier=_ref.merchantIdentifier,_ref$includeOnramp=_ref.includeOnramp,includeOnramp=_ref$includeOnramp===void 0?false:_ref$includeOnramp;var resultConfig=(0,_configPlugins.withEntitlementsPlist)(expoConfig,function(entitlementsConfig){entitlementsConfig.modResults=setApplePayEntitlement(merchantIdentifier,entitlementsConfig.modResults);return entitlementsConfig;});if(includeOnramp){resultConfig=(0,_configPlugins.withPodfile)(resultConfig,function(config){var podfile=config.modResults.contents;var localPodPath=_path.default.dirname(require.resolve('@stripe/stripe-react-native/package.json',{paths:[config.modRequest.projectRoot]}));var relativePodPath=_path.default.relative(_path.default.join(config.modRequest.projectRoot,'ios'),localPodPath);var podLine=` pod 'stripe-react-native/Onramp', :path => '${relativePodPath}'`;if(!podfile.includes(podLine)){config.modResults.contents=podfile.replace('config = use_native_modules!(config_command)',function(match){return`${match}\n${podLine}`;});}return config;});}return resultConfig;};function setApplePayEntitlement(merchantIdentifiers,entitlements){var _entitlements$key;var key='com.apple.developer.in-app-payments';var merchants=(_entitlements$key=entitlements[key])!=null?_entitlements$key:[];if(!Array.isArray(merchantIdentifiers)){merchantIdentifiers=[merchantIdentifiers];}for(var id of merchantIdentifiers){if(id&&!merchants.includes(id)){merchants.push(id);}}if(merchants.length){entitlements[key]=merchants;}return entitlements;}var withNoopSwiftFile=exports.withNoopSwiftFile=function withNoopSwiftFile(config){return _configPlugins.IOSConfig.XcodeProjectFile.withBuildSourceFile(config,{filePath:'noop-file.swift',contents:['//','// @generated','// A blank Swift file must be created for native modules with Swift files to work correctly.','//',''].join('\n')});};var withStripeAndroid=function withStripeAndroid(expoConfig,_ref2){var _ref2$enableGooglePay=_ref2.enableGooglePay,enableGooglePay=_ref2$enableGooglePay===void 0?false:_ref2$enableGooglePay,_ref2$includeOnramp=_ref2.includeOnramp,includeOnramp=_ref2$includeOnramp===void 0?false:_ref2$includeOnramp;var resultConfig=(0,_configPlugins.withAndroidManifest)(expoConfig,function(config){config.modResults=setGooglePayMetaData(enableGooglePay,config.modResults);return config;});resultConfig=(0,_configPlugins.withGradleProperties)(resultConfig,function(config){config.modResults=setOnrampGradleProperty(includeOnramp,config.modResults);return config;});return resultConfig;};function setGooglePayMetaData(enabled,modResults){var GOOGLE_PAY_META_NAME='com.google.android.gms.wallet.api.enabled';var mainApplication=getMainApplicationOrThrow(modResults);if(enabled){addMetaDataItemToMainApplication(mainApplication,GOOGLE_PAY_META_NAME,'true');}else{removeMetaDataItemFromMainApplication(mainApplication,GOOGLE_PAY_META_NAME);}return modResults;}function setOnrampGradleProperty(includeOnramp,modResults){var ONRAMP_PROPERTY_KEY='StripeSdk_includeOnramp';var existingPropertyIndex=modResults.findIndex(function(item){return item.type==='property'&&item.key===ONRAMP_PROPERTY_KEY;});if(includeOnramp){var propertyItem={type:'property',key:ONRAMP_PROPERTY_KEY,value:'true'};if(existingPropertyIndex>=0){modResults[existingPropertyIndex]=propertyItem;}else{modResults.push(propertyItem);}}else{if(existingPropertyIndex>=0){modResults.splice(existingPropertyIndex,1);}}return modResults;}var _default=exports.default=(0,_configPlugins.createRunOncePlugin)(withStripe,pkg.name,pkg.version); //# sourceMappingURL=withStripe.js.map