newrelic-react-native-agent
Version:
A New Relic Mobile Agent for React Native
37 lines (32 loc) • 1.16 kB
text/typescript
/**
* Copyright (c) 2022-present New Relic Corporation. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*/
import { ConfigPlugin, WarningAggregator, withProjectBuildGradle } from '@expo/config-plugins';
import { newrelicClassPath, newrelicAndroidVersion } from './constants';
/**
* Update `<project>/build.gradle` by adding NewRelic dependency to buildscript
*/
export const withBuildscriptDependency: ConfigPlugin = config => {
return withProjectBuildGradle(config, config => {
if (config.modResults.language === 'groovy') {
config.modResults.contents = setBuildscriptDependency(config.modResults.contents);
} else {
WarningAggregator.addWarningAndroid(
'newrelic-react-native-agent',
`Cannot automatically configure project build.gradle if it's not groovy`,
);
}
return config;
});
};
export function setBuildscriptDependency(buildGradle: string) {
if (!buildGradle.includes(newrelicClassPath)) {
return buildGradle.replace(
/dependencies\s?{/,
`dependencies {
classpath '${newrelicClassPath}:${newrelicAndroidVersion}'`,
);
}
return buildGradle;
}