cleanup(angular): remove v14 folder for init (#15816)
This commit is contained in:
parent
44478fb57e
commit
ec1d8e1bf9
@ -1,209 +0,0 @@
|
|||||||
import { cypressInitGenerator } from '@nrwl/cypress';
|
|
||||||
import {
|
|
||||||
addDependenciesToPackageJson,
|
|
||||||
ensurePackage,
|
|
||||||
formatFiles,
|
|
||||||
GeneratorCallback,
|
|
||||||
logger,
|
|
||||||
readNxJson,
|
|
||||||
runTasksInSerial,
|
|
||||||
Tree,
|
|
||||||
updateNxJson,
|
|
||||||
} from '@nrwl/devkit';
|
|
||||||
import { jestInitGenerator } from '@nrwl/jest';
|
|
||||||
import { Linter } from '@nrwl/linter';
|
|
||||||
import { initGenerator as jsInitGenerator } from '@nrwl/js';
|
|
||||||
|
|
||||||
import { backwardCompatibleVersions } from '../../../utils/backward-compatible-versions';
|
|
||||||
import { E2eTestRunner, UnitTestRunner } from '../../../utils/test-runners';
|
|
||||||
import {
|
|
||||||
addDependenciesToPackageJsonIfDontExist,
|
|
||||||
getInstalledPackageVersion,
|
|
||||||
} from '../../utils/version-utils';
|
|
||||||
import { Schema } from './schema';
|
|
||||||
|
|
||||||
export async function angularInitGenerator(
|
|
||||||
host: Tree,
|
|
||||||
rawOptions: Schema
|
|
||||||
): Promise<GeneratorCallback> {
|
|
||||||
const options = normalizeOptions(rawOptions);
|
|
||||||
setDefaults(host, options);
|
|
||||||
const tasks: GeneratorCallback[] = [];
|
|
||||||
|
|
||||||
const peerDepsToInstall = [
|
|
||||||
'@angular-devkit/core',
|
|
||||||
'@angular-devkit/schematics',
|
|
||||||
'@schematics/angular',
|
|
||||||
];
|
|
||||||
let devkitVersion: string;
|
|
||||||
peerDepsToInstall.forEach((pkg) => {
|
|
||||||
const packageVersion = getInstalledPackageVersion(host, pkg);
|
|
||||||
|
|
||||||
if (!packageVersion) {
|
|
||||||
devkitVersion ??=
|
|
||||||
getInstalledPackageVersion(host, '@angular-devkit/build-angular') ??
|
|
||||||
backwardCompatibleVersions.angularV14.angularDevkitVersion;
|
|
||||||
|
|
||||||
try {
|
|
||||||
ensurePackage(pkg, devkitVersion);
|
|
||||||
} catch {
|
|
||||||
// @schematics/angular cannot be required so this fails but this will still allow wrapping the schematic later on
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!options.skipPackageJson) {
|
|
||||||
tasks.push(
|
|
||||||
addDependenciesToPackageJson(host, {}, { [pkg]: devkitVersion })
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const jsTask = await jsInitGenerator(host, {
|
|
||||||
...options,
|
|
||||||
js: false,
|
|
||||||
tsConfigName: options.rootProject ? 'tsconfig.json' : 'tsconfig.base.json',
|
|
||||||
skipFormat: true,
|
|
||||||
});
|
|
||||||
tasks.push(jsTask);
|
|
||||||
|
|
||||||
if (!options.skipPackageJson) {
|
|
||||||
tasks.push(updateDependencies(host));
|
|
||||||
}
|
|
||||||
|
|
||||||
const unitTestTask = await addUnitTestRunner(host, options);
|
|
||||||
tasks.push(unitTestTask);
|
|
||||||
const e2eTask = await addE2ETestRunner(host, options);
|
|
||||||
tasks.push(e2eTask);
|
|
||||||
|
|
||||||
addGitIgnoreEntry(host, '.angular');
|
|
||||||
|
|
||||||
if (!options.skipFormat) {
|
|
||||||
await formatFiles(host);
|
|
||||||
}
|
|
||||||
|
|
||||||
return runTasksInSerial(...tasks);
|
|
||||||
}
|
|
||||||
|
|
||||||
function normalizeOptions(options: Schema): Required<Schema> {
|
|
||||||
return {
|
|
||||||
e2eTestRunner: options.e2eTestRunner ?? E2eTestRunner.Cypress,
|
|
||||||
linter: options.linter ?? Linter.EsLint,
|
|
||||||
skipFormat: options.skipFormat ?? false,
|
|
||||||
skipInstall: options.skipInstall ?? false,
|
|
||||||
skipPackageJson: options.skipPackageJson ?? false,
|
|
||||||
style: options.style ?? 'css',
|
|
||||||
unitTestRunner: options.unitTestRunner ?? UnitTestRunner.Jest,
|
|
||||||
rootProject: options.rootProject,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function setDefaults(host: Tree, options: Schema) {
|
|
||||||
const nxJson = readNxJson(host);
|
|
||||||
|
|
||||||
nxJson.generators = nxJson.generators || {};
|
|
||||||
nxJson.generators['@nrwl/angular:application'] = {
|
|
||||||
style: options.style,
|
|
||||||
linter: options.linter,
|
|
||||||
unitTestRunner: options.unitTestRunner,
|
|
||||||
e2eTestRunner: options.e2eTestRunner,
|
|
||||||
...(nxJson.generators['@nrwl/angular:application'] || {}),
|
|
||||||
};
|
|
||||||
nxJson.generators['@nrwl/angular:library'] = {
|
|
||||||
linter: options.linter,
|
|
||||||
unitTestRunner: options.unitTestRunner,
|
|
||||||
...(nxJson.generators['@nrwl/angular:library'] || {}),
|
|
||||||
};
|
|
||||||
nxJson.generators['@nrwl/angular:component'] = {
|
|
||||||
style: options.style,
|
|
||||||
...(nxJson.generators['@nrwl/angular:component'] || {}),
|
|
||||||
};
|
|
||||||
|
|
||||||
updateNxJson(host, nxJson);
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateDependencies(tree: Tree): GeneratorCallback {
|
|
||||||
const angularVersion =
|
|
||||||
getInstalledPackageVersion(tree, '@angular/core') ??
|
|
||||||
backwardCompatibleVersions.angularV14.angularVersion;
|
|
||||||
const angularDevkitVersion =
|
|
||||||
getInstalledPackageVersion(tree, '@angular-devkit/build-angular') ??
|
|
||||||
backwardCompatibleVersions.angularV14.angularDevkitVersion;
|
|
||||||
|
|
||||||
return addDependenciesToPackageJsonIfDontExist(
|
|
||||||
tree,
|
|
||||||
{
|
|
||||||
'@angular/animations': angularVersion,
|
|
||||||
'@angular/common': angularVersion,
|
|
||||||
'@angular/compiler': angularVersion,
|
|
||||||
'@angular/core': angularVersion,
|
|
||||||
'@angular/forms': angularVersion,
|
|
||||||
'@angular/platform-browser': angularVersion,
|
|
||||||
'@angular/platform-browser-dynamic': angularVersion,
|
|
||||||
'@angular/router': angularVersion,
|
|
||||||
rxjs: backwardCompatibleVersions.angularV14.rxjsVersion,
|
|
||||||
tslib: backwardCompatibleVersions.angularV14.tsLibVersion,
|
|
||||||
'zone.js': backwardCompatibleVersions.angularV14.zoneJsVersion,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'@angular/cli': angularDevkitVersion,
|
|
||||||
'@angular/compiler-cli': angularVersion,
|
|
||||||
'@angular/language-service': angularVersion,
|
|
||||||
'@angular-devkit/build-angular': angularDevkitVersion,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function addUnitTestRunner(
|
|
||||||
tree: Tree,
|
|
||||||
options: Schema
|
|
||||||
): Promise<GeneratorCallback> {
|
|
||||||
switch (options.unitTestRunner) {
|
|
||||||
case UnitTestRunner.Jest:
|
|
||||||
if (!options.skipPackageJson) {
|
|
||||||
addDependenciesToPackageJsonIfDontExist(
|
|
||||||
tree,
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
'jest-preset-angular':
|
|
||||||
backwardCompatibleVersions.angularV14.jestPresetAngularVersion,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return jestInitGenerator(tree, {
|
|
||||||
skipPackageJson: options.skipPackageJson,
|
|
||||||
});
|
|
||||||
default:
|
|
||||||
return () => {};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function addE2ETestRunner(
|
|
||||||
tree: Tree,
|
|
||||||
options: Schema
|
|
||||||
): Promise<GeneratorCallback> {
|
|
||||||
switch (options.e2eTestRunner) {
|
|
||||||
case E2eTestRunner.Cypress:
|
|
||||||
return await cypressInitGenerator(tree, {
|
|
||||||
skipPackageJson: options.skipPackageJson,
|
|
||||||
});
|
|
||||||
default:
|
|
||||||
return () => {};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function addGitIgnoreEntry(host: Tree, entry: string) {
|
|
||||||
if (host.exists('.gitignore')) {
|
|
||||||
let content = host.read('.gitignore', 'utf-8');
|
|
||||||
if (/^\.angular$/gm.test(content)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
content = `${content}\n${entry}\n`;
|
|
||||||
host.write('.gitignore', content);
|
|
||||||
} else {
|
|
||||||
logger.warn(`Couldn't find .gitignore file to update`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default angularInitGenerator;
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
import { Linter } from '@nrwl/linter';
|
|
||||||
import { E2eTestRunner, UnitTestRunner } from '../../utils/test-runners';
|
|
||||||
import type { Styles } from '../utils/types';
|
|
||||||
|
|
||||||
export interface Schema {
|
|
||||||
unitTestRunner?: UnitTestRunner;
|
|
||||||
e2eTestRunner?: E2eTestRunner;
|
|
||||||
skipFormat?: boolean;
|
|
||||||
skipInstall?: boolean;
|
|
||||||
style?: Styles;
|
|
||||||
linter?: Linter;
|
|
||||||
skipPackageJson?: boolean;
|
|
||||||
rootProject?: boolean;
|
|
||||||
}
|
|
||||||
@ -13,8 +13,6 @@ import {
|
|||||||
import { jestInitGenerator } from '@nrwl/jest';
|
import { jestInitGenerator } from '@nrwl/jest';
|
||||||
import { Linter } from '@nrwl/linter';
|
import { Linter } from '@nrwl/linter';
|
||||||
import { initGenerator as jsInitGenerator } from '@nrwl/js';
|
import { initGenerator as jsInitGenerator } from '@nrwl/js';
|
||||||
|
|
||||||
import { join } from 'path';
|
|
||||||
import { E2eTestRunner, UnitTestRunner } from '../../utils/test-runners';
|
import { E2eTestRunner, UnitTestRunner } from '../../utils/test-runners';
|
||||||
import {
|
import {
|
||||||
angularDevkitVersion,
|
angularDevkitVersion,
|
||||||
@ -26,25 +24,17 @@ import {
|
|||||||
} from '../../utils/versions';
|
} from '../../utils/versions';
|
||||||
import {
|
import {
|
||||||
addDependenciesToPackageJsonIfDontExist,
|
addDependenciesToPackageJsonIfDontExist,
|
||||||
getGeneratorDirectoryForInstalledAngularVersion,
|
getInstalledAngularVersionInfo,
|
||||||
getInstalledPackageVersion,
|
getInstalledPackageVersion,
|
||||||
} from '../utils/version-utils';
|
} from '../utils/version-utils';
|
||||||
|
import { backwardCompatibleVersions } from '../../utils/backward-compatible-versions';
|
||||||
import { Schema } from './schema';
|
import { Schema } from './schema';
|
||||||
|
|
||||||
export async function angularInitGenerator(
|
export async function angularInitGenerator(
|
||||||
tree: Tree,
|
tree: Tree,
|
||||||
rawOptions: Schema
|
rawOptions: Schema
|
||||||
): Promise<GeneratorCallback> {
|
): Promise<GeneratorCallback> {
|
||||||
const generatorDirectory =
|
const installedAngularVersionInfo = getInstalledAngularVersionInfo(tree);
|
||||||
getGeneratorDirectoryForInstalledAngularVersion(tree);
|
|
||||||
if (generatorDirectory) {
|
|
||||||
let previousGenerator = await import(
|
|
||||||
join(__dirname, generatorDirectory, 'init')
|
|
||||||
);
|
|
||||||
await previousGenerator.default(tree, rawOptions);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const tasks: GeneratorCallback[] = [];
|
const tasks: GeneratorCallback[] = [];
|
||||||
const options = normalizeOptions(rawOptions);
|
const options = normalizeOptions(rawOptions);
|
||||||
|
|
||||||
@ -60,7 +50,9 @@ export async function angularInitGenerator(
|
|||||||
if (!packageVersion) {
|
if (!packageVersion) {
|
||||||
devkitVersion ??=
|
devkitVersion ??=
|
||||||
getInstalledPackageVersion(tree, '@angular-devkit/build-angular') ??
|
getInstalledPackageVersion(tree, '@angular-devkit/build-angular') ??
|
||||||
angularDevkitVersion;
|
(installedAngularVersionInfo.major === 14
|
||||||
|
? backwardCompatibleVersions.angularV14.angularDevkitVersion
|
||||||
|
: angularDevkitVersion);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ensurePackage(pkg, devkitVersion);
|
ensurePackage(pkg, devkitVersion);
|
||||||
@ -86,9 +78,13 @@ export async function angularInitGenerator(
|
|||||||
tasks.push(jsTask);
|
tasks.push(jsTask);
|
||||||
|
|
||||||
if (!options.skipPackageJson) {
|
if (!options.skipPackageJson) {
|
||||||
tasks.push(updateDependencies(tree));
|
tasks.push(updateDependencies(tree, installedAngularVersionInfo.major));
|
||||||
}
|
}
|
||||||
const unitTestTask = await addUnitTestRunner(tree, options);
|
const unitTestTask = await addUnitTestRunner(
|
||||||
|
tree,
|
||||||
|
options,
|
||||||
|
installedAngularVersionInfo.major
|
||||||
|
);
|
||||||
tasks.push(unitTestTask);
|
tasks.push(unitTestTask);
|
||||||
const e2eTask = await addE2ETestRunner(tree, options);
|
const e2eTask = await addE2ETestRunner(tree, options);
|
||||||
tasks.push(e2eTask);
|
tasks.push(e2eTask);
|
||||||
@ -139,12 +135,20 @@ function setDefaults(host: Tree, options: Schema) {
|
|||||||
updateNxJson(host, nxJson);
|
updateNxJson(host, nxJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateDependencies(tree: Tree): GeneratorCallback {
|
function updateDependencies(
|
||||||
|
tree: Tree,
|
||||||
|
angularMajorVersion: number
|
||||||
|
): GeneratorCallback {
|
||||||
const angularVersionToInstall =
|
const angularVersionToInstall =
|
||||||
getInstalledPackageVersion(tree, '@angular/core') ?? angularVersion;
|
getInstalledPackageVersion(tree, '@angular/core') ??
|
||||||
|
(angularMajorVersion === 14
|
||||||
|
? backwardCompatibleVersions.angularV14.angularVersion
|
||||||
|
: angularVersion);
|
||||||
const angularDevkitVersionToInstall =
|
const angularDevkitVersionToInstall =
|
||||||
getInstalledPackageVersion(tree, '@angular-devkit/build-angular') ??
|
getInstalledPackageVersion(tree, '@angular-devkit/build-angular') ??
|
||||||
angularDevkitVersion;
|
(angularMajorVersion === 14
|
||||||
|
? backwardCompatibleVersions.angularV14.angularDevkitVersion
|
||||||
|
: angularDevkitVersion);
|
||||||
|
|
||||||
return addDependenciesToPackageJsonIfDontExist(
|
return addDependenciesToPackageJsonIfDontExist(
|
||||||
tree,
|
tree,
|
||||||
@ -157,9 +161,18 @@ function updateDependencies(tree: Tree): GeneratorCallback {
|
|||||||
'@angular/platform-browser': angularVersionToInstall,
|
'@angular/platform-browser': angularVersionToInstall,
|
||||||
'@angular/platform-browser-dynamic': angularVersionToInstall,
|
'@angular/platform-browser-dynamic': angularVersionToInstall,
|
||||||
'@angular/router': angularVersionToInstall,
|
'@angular/router': angularVersionToInstall,
|
||||||
rxjs: rxjsVersion,
|
rxjs:
|
||||||
tslib: tsLibVersion,
|
angularMajorVersion === 14
|
||||||
'zone.js': zoneJsVersion,
|
? backwardCompatibleVersions.angularV14.rxjsVersion
|
||||||
|
: rxjsVersion,
|
||||||
|
tslib:
|
||||||
|
angularMajorVersion === 14
|
||||||
|
? backwardCompatibleVersions.angularV14.tsLibVersion
|
||||||
|
: tsLibVersion,
|
||||||
|
'zone.js':
|
||||||
|
angularMajorVersion === 14
|
||||||
|
? backwardCompatibleVersions.angularV14.zoneJsVersion
|
||||||
|
: zoneJsVersion,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'@angular/cli': angularDevkitVersionToInstall,
|
'@angular/cli': angularDevkitVersionToInstall,
|
||||||
@ -172,7 +185,8 @@ function updateDependencies(tree: Tree): GeneratorCallback {
|
|||||||
|
|
||||||
async function addUnitTestRunner(
|
async function addUnitTestRunner(
|
||||||
tree: Tree,
|
tree: Tree,
|
||||||
options: Schema
|
options: Schema,
|
||||||
|
angularMajorVersion: number
|
||||||
): Promise<GeneratorCallback> {
|
): Promise<GeneratorCallback> {
|
||||||
switch (options.unitTestRunner) {
|
switch (options.unitTestRunner) {
|
||||||
case UnitTestRunner.Jest:
|
case UnitTestRunner.Jest:
|
||||||
@ -181,7 +195,10 @@ async function addUnitTestRunner(
|
|||||||
tree,
|
tree,
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
'jest-preset-angular': jestPresetAngularVersion,
|
'jest-preset-angular':
|
||||||
|
angularMajorVersion === 14
|
||||||
|
? backwardCompatibleVersions.angularV14.jestPresetAngularVersion
|
||||||
|
: jestPresetAngularVersion,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user