react-native-notificare
Version:
Notificare React Native module.
65 lines (64 loc) • 2.93 kB
JavaScript
/* eslint-disable @typescript-eslint/no-unused-vars */
Object.defineProperty(exports, "__esModule", { value: true });
exports.withNotificareAndroidGradle = void 0;
const config_plugins_1 = require("expo/config-plugins");
const utils_1 = require("../utils/utils");
const NOTIFICARE_SERVICES_GRADLE_PLUGIN = 're.notifica.gradle.notificare-services';
const withProjectGradleRepositories = (config, props) => {
return (0, config_plugins_1.withProjectBuildGradle)(config, (newConfig) => {
if (!isGroovy(newConfig)) {
console.warn('Unable to add Notificare repositories to project, build.gradle is not groovy.');
return newConfig;
}
if (newConfig.modResults.contents.includes('https://maven.notifica.re/releases')) {
return newConfig;
}
try {
newConfig.modResults.contents = (0, utils_1.replaceAll)(newConfig.modResults.contents, 'mavenCentral()', `mavenCentral()
maven { url 'https://maven.notifica.re/releases' }
maven { url 'https://developer.huawei.com/repo' }`);
}
catch (e) {
console.warn(`Failed to add Notificare repositories to project: ${e}`);
}
return newConfig;
});
};
const withProjectGradleDependencies = (config, props) => {
return (0, config_plugins_1.withProjectBuildGradle)(config, (newConfig) => {
if (!isGroovy(newConfig)) {
console.warn('Unable to add Notificare dependency to project, build.gradle is not groovy.');
return newConfig;
}
if (newConfig.modResults.contents.includes('re.notifica.gradle:notificare-services')) {
return newConfig;
}
newConfig.modResults.contents = (0, utils_1.replace)(newConfig.modResults.contents, /dependencies\s?{/, `dependencies {
classpath 're.notifica.gradle:notificare-services:1.1.0'`);
return newConfig;
});
};
const withAppGradlePlugin = (config, props) => {
return (0, config_plugins_1.withAppBuildGradle)(config, (newConfig) => {
if (!isGroovy(newConfig)) {
console.warn('Unable to apply Notificare plugin, app build.gradle is not groovy.');
return newConfig;
}
if (newConfig.modResults.contents.includes(NOTIFICARE_SERVICES_GRADLE_PLUGIN)) {
return newConfig;
}
newConfig.modResults.contents = `${newConfig.modResults.contents}\napply plugin: '${NOTIFICARE_SERVICES_GRADLE_PLUGIN}'`;
return newConfig;
});
};
const isGroovy = (gradle) => {
return gradle.modResults.language === 'groovy';
};
const withNotificareAndroidGradle = (config, props) => {
config = withProjectGradleRepositories(config, props);
config = withProjectGradleDependencies(config, props);
config = withAppGradlePlugin(config, props);
return config;
};
exports.withNotificareAndroidGradle = withNotificareAndroidGradle;
;