@lyrahealth-inc/react-native-orientation-plugin
Version:
Config plugin to auto configure react-native-orientation on prebuild
55 lines (54 loc) • 2.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withOrientationAndroid = exports.mergeBuildGradle = exports.mergeSettingsGradle = void 0;
const config_plugins_1 = require("@expo/config-plugins");
const generateCode_1 = require("@expo/config-plugins/build/utils/generateCode");
const utils_1 = require("./utils");
const mergeSettingsGradle = (contents) => {
const settings = [
"include ':react-native-orientation'",
"project(':react-native-orientation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-orientation/android')"
];
return (0, utils_1.appendContents)({
tag: 'react-native-orientation-plugin-settings-gradle',
src: contents,
newSrc: settings.join('\n'),
comment: '//'
}).contents;
};
exports.mergeSettingsGradle = mergeSettingsGradle;
const withSettingsGradleConfig = (config) => {
return (0, config_plugins_1.withSettingsGradle)(config, config => {
config.modResults.contents = (0, exports.mergeSettingsGradle)(config.modResults.contents);
return config;
});
};
const mergeBuildGradle = (contents) => {
const dependency = [` implementation project(':react-native-orientation')`];
return (0, generateCode_1.mergeContents)({
src: contents,
newSrc: dependency.join('\n'),
tag: 'react-native-orientation-plugin-dependency',
comment: '//',
anchor: /dependencies\s?{/,
offset: 1
}).contents;
};
exports.mergeBuildGradle = mergeBuildGradle;
const withBuildGradle = (config) => {
return (0, config_plugins_1.withAppBuildGradle)(config, config => {
if (config.modResults.language === 'groovy') {
config.modResults.contents = (0, exports.mergeBuildGradle)(config.modResults.contents);
}
else {
throw new Error('Cannot add orientation maven gradle because the build.gradle is not groovy');
}
return config;
});
};
const withOrientationAndroid = (config) => {
config = withBuildGradle(config);
config = withSettingsGradleConfig(config);
return config;
};
exports.withOrientationAndroid = withOrientationAndroid;