@nx/expo
Version:
32 lines (31 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ensureDependencies = ensureDependencies;
const devkit_1 = require("@nx/devkit");
const version_utils_1 = require("./version-utils");
async function ensureDependencies(host, unitTestRunner) {
const versions = await (0, version_utils_1.getExpoDependenciesVersionsToInstall)(host);
const devDependencies = {
'@types/react': versions.typesReact,
'babel-preset-expo': versions.babelPresetExpo,
};
const isPnpm = (0, devkit_1.detectPackageManager)(host.root) === 'pnpm';
if (isPnpm) {
devDependencies['@babel/runtime'] = versions.babelRuntime; // @babel/runtime is used by react-native-svg
}
if (unitTestRunner === 'jest') {
devDependencies['@testing-library/react-native'] =
versions.testingLibraryReactNative;
devDependencies['jest-expo'] = versions.jestExpo;
}
return (0, devkit_1.addDependenciesToPackageJson)(host, {
'expo-splash-screen': versions.expoSplashScreen,
'expo-status-bar': versions.expoStatusBar,
'expo-system-ui': versions.expoSystemUi,
'react-native-web': versions.reactNativeWeb,
'@expo/metro-config': versions.expoMetroConfig,
'@expo/metro-runtime': versions.expoMetroRuntime,
'react-native-svg-transformer': versions.reactNativeSvgTransformer,
'react-native-svg': versions.reactNativeSvg,
}, devDependencies);
}