84 lines
2.1 KiB
TypeScript
84 lines
2.1 KiB
TypeScript
import type {
|
|
NxJsonConfiguration,
|
|
ProjectConfiguration,
|
|
Tree,
|
|
} from '@nx/devkit';
|
|
import {
|
|
formatFiles,
|
|
getProjects,
|
|
readNxJson,
|
|
updateNxJson,
|
|
updateProjectConfiguration,
|
|
} from '@nx/devkit';
|
|
|
|
const GENERATORS = ['application', 'host', 'remote'];
|
|
const CANDIDATE_GENERATOR_COLLECTIONS = ['@nrwl/angular', '@nx/angular'];
|
|
|
|
export default async function removeProtractorDefaults(tree: Tree) {
|
|
const nxJson = readNxJson(tree);
|
|
|
|
if (nxJson.generators) {
|
|
const updatedConfig = updateE2ETestRunner(nxJson.generators);
|
|
|
|
if (updatedConfig) {
|
|
updateNxJson(tree, nxJson);
|
|
}
|
|
}
|
|
|
|
const projects = getProjects(tree);
|
|
|
|
for (const [projectName, projectConfig] of projects) {
|
|
if (projectConfig.generators) {
|
|
const updatedProject = updateE2ETestRunner(projectConfig.generators);
|
|
|
|
if (updatedProject) {
|
|
updateProjectConfiguration(tree, projectName, projectConfig);
|
|
}
|
|
}
|
|
}
|
|
|
|
await formatFiles(tree);
|
|
}
|
|
|
|
function updateE2ETestRunner(
|
|
generatorsConfig:
|
|
| NxJsonConfiguration['generators']
|
|
| ProjectConfiguration['generators']
|
|
) {
|
|
const generators = Object.entries(generatorsConfig);
|
|
|
|
let updatedConfig = false;
|
|
for (const [generatorName, generatorDefaults] of generators) {
|
|
if (CANDIDATE_GENERATOR_COLLECTIONS.includes(generatorName)) {
|
|
for (const possibleGenerator of GENERATORS) {
|
|
if (
|
|
generatorDefaults[possibleGenerator] &&
|
|
generatorDefaults[possibleGenerator]['e2eTestRunner'] &&
|
|
generatorDefaults[possibleGenerator]['e2eTestRunner'] === 'protractor'
|
|
) {
|
|
generatorsConfig[generatorName][possibleGenerator]['e2eTestRunner'] =
|
|
undefined;
|
|
updatedConfig = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (
|
|
!GENERATORS.map((v) => `@nrwl/angular:${v}`).includes(generatorName) &&
|
|
!GENERATORS.map((v) => `@nx/angular:${v}`).includes(generatorName)
|
|
) {
|
|
continue;
|
|
}
|
|
|
|
if (
|
|
generatorDefaults['e2eTestRunner'] &&
|
|
generatorDefaults['e2eTestRunner'] === 'protractor'
|
|
) {
|
|
generatorsConfig[generatorName]['e2eTestRunner'] = undefined;
|
|
updatedConfig = true;
|
|
}
|
|
}
|
|
|
|
return updatedConfig;
|
|
}
|