|
6 | 6 | * found in the LICENSE file at https://angular.dev/license
|
7 | 7 | */
|
8 | 8 |
|
9 |
| -import { readFile } from 'node:fs/promises'; |
| 9 | +import { createRequire } from 'node:module'; |
| 10 | +import { fileURLToPath } from 'node:url'; |
10 | 11 | import semver from 'semver';
|
11 | 12 |
|
12 |
| -export async function checkSchematicsAngularLatestVersion( |
13 |
| - newVersion: semver.SemVer, |
14 |
| -): Promise<string[]> { |
15 |
| - const { dependencies } = JSON.parse( |
16 |
| - await readFile('./packages/schematics/angular/utility/latest-versions/package.json', 'utf-8'), |
| 13 | +export function checkSchematicsAngularLatestVersion(newVersion: semver.SemVer): string[] { |
| 14 | + // Root of the Angular CLI project. |
| 15 | + const root = fileURLToPath(new URL('../../../', import.meta.url)); |
| 16 | + const rootRequire = createRequire(root); |
| 17 | + const { latestVersions } = rootRequire( |
| 18 | + './dist/releases/schematics/angular/utility/latest-versions.js', |
17 | 19 | );
|
18 | 20 |
|
19 |
| - const keysToCheck = ['ng-packagr', '@angular/core']; |
20 |
| - const { major, minor } = newVersion; |
21 |
| - const isPrerelease = !!newVersion.prerelease[0]; |
| 21 | + const keysToCheck = ['Angular', 'NgPackagr']; |
| 22 | + const { major, minor, prerelease } = newVersion; |
| 23 | + const isPrerelease = !!prerelease[0]; |
22 | 24 | const failures: string[] = [];
|
23 | 25 |
|
24 |
| - let expectedFwDep = `^${major}.${minor}.0`; |
| 26 | + let expectedVersionDep = `^${major}.${minor}.0`; |
25 | 27 | if (isPrerelease) {
|
26 |
| - expectedFwDep = `^${major}.${minor}.0-next.0`; |
| 28 | + expectedVersionDep += '-next.0'; |
27 | 29 | }
|
28 | 30 |
|
29 | 31 | for (const key of keysToCheck) {
|
30 |
| - if (dependencies[key] !== expectedFwDep) { |
| 32 | + const latestVersion = latestVersions[key]; |
| 33 | + if (latestVersion !== expectedVersionDep) { |
31 | 34 | failures.push(
|
32 |
| - `latest-versions: Invalid dependency range for "${key}". Expected: ${expectedFwDep}`, |
| 35 | + `latest-versions: Invalid dependency range for "${key}". Expected: ${expectedVersionDep} but got: ${latestVersion}`, |
33 | 36 | );
|
34 | 37 | }
|
35 | 38 | }
|
|
0 commit comments