react-native-keys
Version:
🔐 Make protected .ENVs variables
33 lines (32 loc) • 1.63 kB
JavaScript
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;
;