react-native-background-fetch
Version:
iOS & Android BackgroundFetch API implementation for React Native
50 lines • 2.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const config_plugins_1 = require("@expo/config-plugins");
const generateCode_1 = require("@expo/config-plugins/build/utils/generateCode");
const MODULE_NAME = 'react-native-background-fetch';
const androidPlugin = (config, props = {}) => {
config = (0, config_plugins_1.withProjectBuildGradle)(config, ({ modResults, ...subConfig }) => {
if (modResults.language !== 'groovy') {
config_plugins_1.WarningAggregator.addWarningAndroid('withBackgroundGeolocation', `Cannot automatically configure project build.gradle if it's not groovy`);
return { modResults, ...subConfig };
}
modResults.contents = applyMavenUrl(modResults.contents);
return { modResults, ...subConfig };
});
config = (0, config_plugins_1.withAppBuildGradle)(config, ({ modResults, ...subConfig }) => {
if (modResults.language !== 'groovy') {
config_plugins_1.WarningAggregator.addWarningAndroid('withBackgroundGeolocation', `Cannot automatically configure project build.gradle if it's not groovy`);
return { modResults, ...subConfig };
}
modResults.contents = applyAppGradle(modResults.contents);
return { modResults, ...subConfig };
});
return config;
};
const applyMavenUrl = (buildGradle) => {
return (0, generateCode_1.mergeContents)({
tag: `${MODULE_NAME}-maven`,
src: buildGradle,
newSrc: `\tmaven { url "\${project(":${MODULE_NAME}").projectDir}/libs" }`,
anchor: /maven\s\{/,
offset: 0,
comment: "//",
}).contents;
};
const applyAppGradle = (buildGradle) => {
// Apply background-geolocation.gradle
const newSrc = [];
newSrc.push(`Project background_fetch = project(':${MODULE_NAME}')`);
buildGradle = (0, generateCode_1.mergeContents)({
tag: `${MODULE_NAME}-project`,
src: buildGradle,
newSrc: newSrc.join("\n"),
anchor: /android\s\{/,
offset: 1,
comment: "//",
}).contents;
return buildGradle;
};
exports.default = androidPlugin;
//# sourceMappingURL=androidPlugin.js.map