@nx/detox
Version:
38 lines (37 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeOptions = normalizeOptions;
const devkit_1 = require("@nx/devkit");
const internal_1 = require("@nx/devkit/internal");
const internal_2 = require("@nx/js/internal");
async function normalizeOptions(host, options) {
const { projectName, projectRoot: e2eProjectRoot, importPath, } = await (0, internal_1.determineProjectNameAndRootOptions)(host, {
name: options.e2eName,
projectType: 'application',
directory: options.e2eDirectory,
});
const nxJson = (0, devkit_1.readNxJson)(host);
const addPlugin = process.env.NX_ADD_PLUGINS !== 'false' &&
nxJson.useInferencePlugins !== false;
options.addPlugin ??= addPlugin;
const { fileName: appFileName, className: appClassName } = (0, devkit_1.names)(options.appName || options.appProject);
const { root: appRoot } = (0, devkit_1.readProjectConfiguration)(host, options.appProject);
const isUsingTsSolutionConfig = (0, internal_2.isUsingTsSolutionSetup)(host);
const e2eProjectName = !isUsingTsSolutionConfig || options.e2eName ? projectName : importPath;
// We default to generate a project.json file if the new setup is not being used
const useProjectJson = options.useProjectJson ?? !isUsingTsSolutionConfig;
return {
...options,
appFileName,
appClassName,
appDisplayName: options.appDisplayName || appClassName,
appExpoName: options.appDisplayName?.replace(/\s/g, '') || appClassName,
appRoot,
e2eProjectName,
e2eProjectRoot,
importPath,
isUsingTsSolutionConfig,
js: options.js ?? false,
useProjectJson,
};
}