fix(angular): change rxjs migration to conditional migration (#11771)
This commit is contained in:
parent
bbe7a3679a
commit
b86ace50d3
@ -161,6 +161,12 @@
|
|||||||
"description": "Update the @angular/cli package version to ~14.1.0.",
|
"description": "Update the @angular/cli package version to ~14.1.0.",
|
||||||
"factory": "./src/migrations/update-14-5-2/update-angular-cli"
|
"factory": "./src/migrations/update-14-5-2/update-angular-cli"
|
||||||
},
|
},
|
||||||
|
"update-rxjs-7-5-0": {
|
||||||
|
"cli": "nx",
|
||||||
|
"version": "14.5.7-beta.0",
|
||||||
|
"description": "Update the rxjs package version to ~7.5.0 if RxJS 7 is used in workspace.",
|
||||||
|
"factory": "./src/migrations/update-14-5-7/update-rxjs"
|
||||||
|
},
|
||||||
"update-angular-cli-version-14-2-0": {
|
"update-angular-cli-version-14-2-0": {
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
"version": "14.6.0-beta.0",
|
"version": "14.6.0-beta.0",
|
||||||
@ -1460,15 +1466,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"14.5.7": {
|
|
||||||
"version": "14.5.7-beta.0",
|
|
||||||
"packages": {
|
|
||||||
"rxjs": {
|
|
||||||
"version": "~7.5.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"14.6.0": {
|
"14.6.0": {
|
||||||
"version": "14.6.0-beta.0",
|
"version": "14.6.0-beta.0",
|
||||||
"packages": {
|
"packages": {
|
||||||
|
|||||||
@ -0,0 +1,55 @@
|
|||||||
|
import { readJson, Tree, writeJson } from '@nrwl/devkit';
|
||||||
|
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
||||||
|
import updateRxjs from './update-rxjs';
|
||||||
|
|
||||||
|
describe('update-rxjs migration', () => {
|
||||||
|
let tree: Tree;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
tree = createTreeWithEmptyWorkspace();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update rxjs version when defined as a dev dependency and greater than 7.0.0', async () => {
|
||||||
|
writeJson(tree, 'package.json', {
|
||||||
|
devDependencies: { rxjs: '~7.0.0' },
|
||||||
|
});
|
||||||
|
|
||||||
|
await updateRxjs(tree);
|
||||||
|
|
||||||
|
const { devDependencies } = readJson(tree, 'package.json');
|
||||||
|
expect(devDependencies['rxjs']).toEqual('~7.5.0');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update rxjs version when defined as a dependency and greater than 7.0.0', async () => {
|
||||||
|
writeJson(tree, 'package.json', {
|
||||||
|
dependencies: { rxjs: '~7.0.0' },
|
||||||
|
});
|
||||||
|
|
||||||
|
await updateRxjs(tree);
|
||||||
|
|
||||||
|
const { dependencies } = readJson(tree, 'package.json');
|
||||||
|
expect(dependencies['rxjs']).toEqual('~7.5.0');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not update rxjs when it is less than 7.0.0', async () => {
|
||||||
|
writeJson(tree, 'package.json', {
|
||||||
|
dependencies: { rxjs: '~6.5.0' },
|
||||||
|
});
|
||||||
|
|
||||||
|
await updateRxjs(tree);
|
||||||
|
|
||||||
|
const { dependencies } = readJson(tree, 'package.json');
|
||||||
|
expect(dependencies['rxjs']).toEqual('~6.5.0');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not update rxjs when it is less than 7.0.0', async () => {
|
||||||
|
writeJson(tree, 'package.json', {
|
||||||
|
devDependencies: { rxjs: '~6.5.0' },
|
||||||
|
});
|
||||||
|
|
||||||
|
await updateRxjs(tree);
|
||||||
|
|
||||||
|
const { devDependencies } = readJson(tree, 'package.json');
|
||||||
|
expect(devDependencies['rxjs']).toEqual('~6.5.0');
|
||||||
|
});
|
||||||
|
});
|
||||||
30
packages/angular/src/migrations/update-14-5-7/update-rxjs.ts
Normal file
30
packages/angular/src/migrations/update-14-5-7/update-rxjs.ts
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import { formatFiles, Tree, updateJson } from '@nrwl/devkit';
|
||||||
|
import { gte, minVersion } from 'semver';
|
||||||
|
|
||||||
|
const rxjsVersion = '~7.5.0';
|
||||||
|
|
||||||
|
export default async function (tree: Tree) {
|
||||||
|
let shouldFormat = false;
|
||||||
|
|
||||||
|
updateJson(tree, 'package.json', (json) => {
|
||||||
|
if (
|
||||||
|
json.devDependencies?.['rxjs'] &&
|
||||||
|
gte(minVersion(json.devDependencies?.['rxjs']), '7.0.0')
|
||||||
|
) {
|
||||||
|
json.devDependencies['rxjs'] = rxjsVersion;
|
||||||
|
shouldFormat = true;
|
||||||
|
} else if (
|
||||||
|
json.dependencies?.['rxjs'] &&
|
||||||
|
gte(minVersion(json.dependencies?.['rxjs']), '7.0.0')
|
||||||
|
) {
|
||||||
|
json.dependencies['rxjs'] = rxjsVersion;
|
||||||
|
shouldFormat = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return json;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (shouldFormat) {
|
||||||
|
await formatFiles(tree);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user