UNPKG

react-native-keys

Version:
33 lines (32 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.withAddProductFlavours = void 0; const config_plugins_1 = require("@expo/config-plugins"); function convertToGradleProductFlavors(productFlavors) { let result = 'flavorDimensions "default"\nproductFlavors {\n'; for (const flavor in productFlavors) { if (productFlavors.hasOwnProperty(flavor)) { const applicationIdSuffix = productFlavors[flavor].applicationIdSuffix; result += ` ${flavor} {\n applicationIdSuffix "${applicationIdSuffix}"\n }\n`; } } result += '}'; return result; } function applyImplementation(appBuildGradle, productFlavors) { var _a; const productFlavorsRegex = /flavorDimensions.+\n+productFlavors\s*\{(?:[^{}]*|(?:(?:[^{}]*\{[^{}]*\})*[^{}]*))*\}\n/; appBuildGradle = appBuildGradle.replace(productFlavorsRegex, ''); const signingConfigs = (_a = appBuildGradle.match(/signingConfigs\s*\{(?:[^{}]*|(?:(?:[^{}]*\{[^{}]*\})*[^{}]*))*\}/)) === null || _a === void 0 ? void 0 : _a[0]; if (signingConfigs && appBuildGradle.includes(signingConfigs)) { return appBuildGradle.replace(signingConfigs, `${signingConfigs}\n${productFlavors}`); } return appBuildGradle; } const withAddProductFlavours = (config, props) => { return (0, config_plugins_1.withAppBuildGradle)(config, (config) => { config.modResults.contents = applyImplementation(config.modResults.contents, convertToGradleProductFlavors(props.android.productFlavors)); return config; }); }; exports.withAddProductFlavours = withAddProductFlavours;