UNPKG

@nx/react-native

Version:

The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides: -Integration with libraries such as Jest, Detox, and Storybook. -Scaffolding for creating buildable libraries th

51 lines (50 loc) 2.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.normalizeOptions = normalizeOptions; const devkit_1 = require("@nx/devkit"); const project_name_and_root_utils_1 = require("@nx/devkit/src/generators/project-name-and-root-utils"); const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup"); async function normalizeOptions(host, options) { await (0, project_name_and_root_utils_1.ensureRootProjectName)(options, 'application'); const { projectName, names: projectNames, projectRoot: appProjectRoot, importPath, } = await (0, project_name_and_root_utils_1.determineProjectNameAndRootOptions)(host, { name: options.name, projectType: 'application', directory: options.directory, }); const nxJson = (0, devkit_1.readNxJson)(host); const addPluginDefault = process.env.NX_ADD_PLUGINS !== 'false' && nxJson.useInferencePlugins !== false; options.addPlugin ??= addPluginDefault; const { className, fileName } = (0, devkit_1.names)(projectNames.projectSimpleName); const iosProjectRoot = (0, devkit_1.joinPathFragments)(appProjectRoot, 'ios'); const androidProjectRoot = (0, devkit_1.joinPathFragments)(appProjectRoot, 'android'); const rootProject = appProjectRoot === '.'; const isTsSolutionSetup = (0, ts_solution_setup_1.isUsingTsSolutionSetup)(host); const appProjectName = !isTsSolutionSetup || options.name ? projectName : importPath; const e2eProjectName = rootProject ? 'e2e' : `${appProjectName}-e2e`; const e2eProjectRoot = rootProject ? 'e2e' : `${appProjectRoot}-e2e`; const parsedTags = options.tags ? options.tags.split(',').map((s) => s.trim()) : []; const entryFile = options.js ? 'src/main.js' : 'src/main.tsx'; return { ...options, name: projectNames.projectSimpleName, className, fileName, lowerCaseName: className.toLowerCase(), displayName: options.displayName || className, projectName: appProjectName, appProjectRoot, importPath, iosProjectRoot, androidProjectRoot, parsedTags, entryFile, rootProject, e2eProjectName, e2eProjectRoot, isTsSolutionSetup, useProjectJson: options.useProjectJson ?? !isTsSolutionSetup, }; }