fix(nest): update nestjs versions for init generators (#11355)
This commit is contained in:
parent
7f259493ac
commit
b67ca98758
@ -1,15 +1,6 @@
|
|||||||
import { applicationGenerator as angularApplicationGenerator } from '@nrwl/angular/src/generators/application/application';
|
|
||||||
import type { Tree } from '@nrwl/devkit';
|
import type { Tree } from '@nrwl/devkit';
|
||||||
import * as devkit from '@nrwl/devkit';
|
import * as devkit from '@nrwl/devkit';
|
||||||
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
||||||
import * as semver from 'semver';
|
|
||||||
import {
|
|
||||||
nestJsSchematicsVersion,
|
|
||||||
nestJsVersion7,
|
|
||||||
nestJsVersion8,
|
|
||||||
rxjsVersion6,
|
|
||||||
rxjsVersion7,
|
|
||||||
} from '../../utils/versions';
|
|
||||||
import { applicationGenerator } from './application';
|
import { applicationGenerator } from './application';
|
||||||
|
|
||||||
describe('application generator', () => {
|
describe('application generator', () => {
|
||||||
@ -76,73 +67,4 @@ describe('application generator', () => {
|
|||||||
expect(devkit.formatFiles).not.toHaveBeenCalled();
|
expect(devkit.formatFiles).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('NestJS versions', () => {
|
|
||||||
it('should use NestJs 8 for empty workspace', async () => {
|
|
||||||
await applicationGenerator(tree, { name: appName });
|
|
||||||
const pkg = devkit.readJson(tree, `package.json`);
|
|
||||||
|
|
||||||
expect(pkg.dependencies['rxjs']).toBe(rxjsVersion7);
|
|
||||||
expect(pkg.dependencies['@nestjs/common']).toBe(nestJsVersion8);
|
|
||||||
expect(pkg.devDependencies['@nestjs/schematics']).toBe(
|
|
||||||
nestJsSchematicsVersion
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`should use NestJs 8 for Angular + RxJS 7 (${rxjsVersion7}) workspace`, async () => {
|
|
||||||
await angularApplicationGenerator(tree, { name: 'angular-app' });
|
|
||||||
|
|
||||||
let pkg = devkit.readJson(tree, 'package.json');
|
|
||||||
pkg.dependencies['rxjs'] = rxjsVersion7;
|
|
||||||
tree.write('package.json', JSON.stringify(pkg));
|
|
||||||
|
|
||||||
await applicationGenerator(tree, { name: appName });
|
|
||||||
|
|
||||||
pkg = devkit.readJson(tree, 'package.json');
|
|
||||||
|
|
||||||
expect(pkg.dependencies['rxjs']).toBe(rxjsVersion7);
|
|
||||||
expect(pkg.dependencies['@nestjs/common']).toBe(nestJsVersion8);
|
|
||||||
expect(pkg.devDependencies['@nestjs/schematics']).toBe(
|
|
||||||
nestJsSchematicsVersion
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should use NestJs 8 for Angular + RxJS 7 (7.4.0) workspace', async () => {
|
|
||||||
await angularApplicationGenerator(tree, { name: 'angular-app' });
|
|
||||||
|
|
||||||
let pkg = devkit.readJson(tree, 'package.json');
|
|
||||||
pkg.dependencies['rxjs'] = '~7.4.0';
|
|
||||||
tree.write('package.json', JSON.stringify(pkg));
|
|
||||||
|
|
||||||
await applicationGenerator(tree, { name: appName });
|
|
||||||
|
|
||||||
pkg = devkit.readJson(tree, 'package.json');
|
|
||||||
|
|
||||||
expect(pkg.dependencies['rxjs']).toBe('~7.4.0');
|
|
||||||
expect(pkg.dependencies['@nestjs/common']).toBe(nestJsVersion8);
|
|
||||||
expect(pkg.devDependencies['@nestjs/schematics']).toBe(
|
|
||||||
nestJsSchematicsVersion
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should use NestJs 7 for Angular + RxJS 6 workspace', async () => {
|
|
||||||
await angularApplicationGenerator(tree, { name: 'angular-app' });
|
|
||||||
devkit.updateJson(tree, 'package.json', (json) => {
|
|
||||||
json.dependencies.rxjs = rxjsVersion6;
|
|
||||||
return json;
|
|
||||||
});
|
|
||||||
|
|
||||||
await applicationGenerator(tree, { name: appName });
|
|
||||||
|
|
||||||
const pkg = devkit.readJson(tree, `package.json`);
|
|
||||||
|
|
||||||
expect(semver.minVersion(pkg.dependencies['rxjs']).major).toBe(
|
|
||||||
semver.minVersion(rxjsVersion6).major
|
|
||||||
);
|
|
||||||
expect(pkg.dependencies['@nestjs/common']).toBe(nestJsVersion7);
|
|
||||||
expect(pkg.devDependencies['@nestjs/schematics']).toBe(
|
|
||||||
nestJsSchematicsVersion
|
|
||||||
);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,11 +1,7 @@
|
|||||||
import type { Tree } from '@nrwl/devkit';
|
import type { Tree } from '@nrwl/devkit';
|
||||||
import * as devkit from '@nrwl/devkit';
|
import * as devkit from '@nrwl/devkit';
|
||||||
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
||||||
import {
|
import { nestJsVersion, nxVersion } from '../../utils/versions';
|
||||||
nestJsSchematicsVersion,
|
|
||||||
nestJsVersion8,
|
|
||||||
nxVersion,
|
|
||||||
} from '../../utils/versions';
|
|
||||||
import { initGenerator } from './init';
|
import { initGenerator } from './init';
|
||||||
|
|
||||||
describe('init generator', () => {
|
describe('init generator', () => {
|
||||||
@ -20,19 +16,19 @@ describe('init generator', () => {
|
|||||||
await initGenerator(tree, {});
|
await initGenerator(tree, {});
|
||||||
|
|
||||||
const packageJson = devkit.readJson(tree, 'package.json');
|
const packageJson = devkit.readJson(tree, 'package.json');
|
||||||
expect(packageJson.dependencies['@nestjs/common']).toBe(nestJsVersion8);
|
expect(packageJson.dependencies['@nestjs/common']).toBe(nestJsVersion);
|
||||||
expect(packageJson.dependencies['@nestjs/core']).toBe(nestJsVersion8);
|
expect(packageJson.dependencies['@nestjs/core']).toBe(nestJsVersion);
|
||||||
expect(packageJson.dependencies['@nestjs/platform-express']).toBe(
|
expect(packageJson.dependencies['@nestjs/platform-express']).toBe(
|
||||||
nestJsVersion8
|
nestJsVersion
|
||||||
);
|
);
|
||||||
expect(packageJson.dependencies['reflect-metadata']).toBeDefined();
|
expect(packageJson.dependencies['reflect-metadata']).toBeDefined();
|
||||||
expect(packageJson.dependencies['rxjs']).toBeDefined();
|
expect(packageJson.dependencies['rxjs']).toBeDefined();
|
||||||
expect(packageJson.dependencies['tslib']).toBeDefined();
|
expect(packageJson.dependencies['tslib']).toBeDefined();
|
||||||
expect(packageJson.dependencies['@nrwl/nest']).toBeUndefined();
|
expect(packageJson.dependencies['@nrwl/nest']).toBeUndefined();
|
||||||
expect(packageJson.devDependencies['@nestjs/schematics']).toBe(
|
expect(packageJson.devDependencies['@nestjs/schematics']).toBe(
|
||||||
nestJsSchematicsVersion
|
nestJsVersion
|
||||||
);
|
);
|
||||||
expect(packageJson.devDependencies['@nestjs/testing']).toBe(nestJsVersion8);
|
expect(packageJson.devDependencies['@nestjs/testing']).toBe(nestJsVersion);
|
||||||
expect(packageJson.devDependencies['@nrwl/nest']).toBe(nxVersion);
|
expect(packageJson.devDependencies['@nrwl/nest']).toBe(nxVersion);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,53 +1,27 @@
|
|||||||
import type { GeneratorCallback, Tree } from '@nrwl/devkit';
|
import type { GeneratorCallback, Tree } from '@nrwl/devkit';
|
||||||
import { addDependenciesToPackageJson, readJson } from '@nrwl/devkit';
|
import { addDependenciesToPackageJson } from '@nrwl/devkit';
|
||||||
import { satisfies } from 'semver';
|
|
||||||
import {
|
import {
|
||||||
nestJsSchematicsVersion,
|
nestJsVersion,
|
||||||
nestJsVersion7,
|
|
||||||
nestJsVersion8,
|
|
||||||
nxVersion,
|
nxVersion,
|
||||||
reflectMetadataVersion,
|
reflectMetadataVersion,
|
||||||
rxjsVersion6,
|
rxjsVersion,
|
||||||
rxjsVersion7,
|
|
||||||
tsLibVersion,
|
tsLibVersion,
|
||||||
} from '../../../utils/versions';
|
} from '../../../utils/versions';
|
||||||
|
|
||||||
export function addDependencies(tree: Tree): GeneratorCallback {
|
export function addDependencies(tree: Tree): GeneratorCallback {
|
||||||
// Old nest 7 and rxjs 6 by default
|
|
||||||
let NEST_VERSION = nestJsVersion7;
|
|
||||||
let RXJS = rxjsVersion6;
|
|
||||||
|
|
||||||
const packageJson = readJson(tree, 'package.json');
|
|
||||||
|
|
||||||
if (packageJson.dependencies['@angular/core']) {
|
|
||||||
let rxjs = packageJson.dependencies['rxjs'];
|
|
||||||
|
|
||||||
if (rxjs.startsWith('~') || rxjs.startsWith('^')) {
|
|
||||||
rxjs = rxjs.substring(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (satisfies(rxjs, rxjsVersion7)) {
|
|
||||||
NEST_VERSION = nestJsVersion8;
|
|
||||||
RXJS = packageJson.dependencies['rxjs'];
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
NEST_VERSION = nestJsVersion8;
|
|
||||||
RXJS = rxjsVersion7;
|
|
||||||
}
|
|
||||||
|
|
||||||
return addDependenciesToPackageJson(
|
return addDependenciesToPackageJson(
|
||||||
tree,
|
tree,
|
||||||
{
|
{
|
||||||
'@nestjs/common': NEST_VERSION,
|
'@nestjs/common': nestJsVersion,
|
||||||
'@nestjs/core': NEST_VERSION,
|
'@nestjs/core': nestJsVersion,
|
||||||
'@nestjs/platform-express': NEST_VERSION,
|
'@nestjs/platform-express': nestJsVersion,
|
||||||
'reflect-metadata': reflectMetadataVersion,
|
'reflect-metadata': reflectMetadataVersion,
|
||||||
rxjs: RXJS,
|
rxjs: rxjsVersion,
|
||||||
tslib: tsLibVersion,
|
tslib: tsLibVersion,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'@nestjs/schematics': nestJsSchematicsVersion,
|
'@nestjs/schematics': nestJsVersion,
|
||||||
'@nestjs/testing': NEST_VERSION,
|
'@nestjs/testing': nestJsVersion,
|
||||||
'@nrwl/nest': nxVersion,
|
'@nrwl/nest': nxVersion,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,13 +1,12 @@
|
|||||||
import { formatFiles, logger, readJson, Tree, updateJson } from '@nrwl/devkit';
|
import { formatFiles, logger, readJson, Tree, updateJson } from '@nrwl/devkit';
|
||||||
import { checkAndCleanWithSemver } from '@nrwl/workspace';
|
import { checkAndCleanWithSemver } from '@nrwl/workspace';
|
||||||
import { satisfies } from 'semver';
|
import { satisfies } from 'semver';
|
||||||
import {
|
|
||||||
nestJsSchematicsVersion,
|
|
||||||
nestJsVersion8,
|
|
||||||
rxjsVersion7,
|
|
||||||
} from '../../utils/versions';
|
|
||||||
import { sortObjectByKeys } from '@nrwl/workspace/src/utils/ast-utils';
|
import { sortObjectByKeys } from '@nrwl/workspace/src/utils/ast-utils';
|
||||||
|
|
||||||
|
const nestJsSchematicsVersion = '^9.0.0';
|
||||||
|
const nestJsVersion8 = '^8.0.0';
|
||||||
|
const rxjsVersion7 = '^7.0.0';
|
||||||
|
|
||||||
export default async function update(tree: Tree) {
|
export default async function update(tree: Tree) {
|
||||||
const shouldUpdate = await isUpdatable(tree);
|
const shouldUpdate = await isUpdatable(tree);
|
||||||
|
|
||||||
|
|||||||
@ -1,13 +1,6 @@
|
|||||||
export const nxVersion = require('../../package.json').version;
|
export const nxVersion = require('../../package.json').version;
|
||||||
|
|
||||||
export const nestJsVersion7 = '^7.0.0';
|
export const nestJsVersion = '^9.0.0';
|
||||||
export const nestJsVersion8 = '^8.0.0';
|
export const rxjsVersion = '^7.0.0';
|
||||||
|
|
||||||
export const nestJsSchematicsVersion = '^8.0.0';
|
|
||||||
|
|
||||||
export const rxjsVersion6 = '~6.6.3';
|
|
||||||
export const rxjsVersion7 = '^7.0.0';
|
|
||||||
|
|
||||||
export const reflectMetadataVersion = '^0.1.13';
|
export const reflectMetadataVersion = '^0.1.13';
|
||||||
|
|
||||||
export const tsLibVersion = '^2.3.0';
|
export const tsLibVersion = '^2.3.0';
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user