Skip to content

Commit 61f92fd

Browse files
alan-agius4clydin
authored andcommitted
build: update ng-dev config to work with Node.js 18.19
Update ng-dev setup to work with 18.19 For more details, refer to: TypeStrong/ts-node#2094 (cherry picked from commit a6129a6)
1 parent a398d2f commit 61f92fd

File tree

14 files changed

+82
-49
lines changed

14 files changed

+82
-49
lines changed

.ng-dev/caretaker.mts renamed to .ng-dev/caretaker.mjs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
import { CaretakerConfig } from '@angular/ng-dev';
2-
3-
/** The configuration for `ng-dev caretaker` commands. */
4-
export const caretaker: CaretakerConfig = {
1+
/**
2+
* The configuration for `ng-dev caretaker` commands.
3+
*
4+
* @type { import("@angular/ng-dev").CaretakerConfig }
5+
*/
6+
export const caretaker = {
57
githubQueries: [
68
{
79
name: 'Merge Queue',
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
import { CommitMessageConfig } from '@angular/ng-dev';
2-
import packages from '../lib/packages.js';
1+
import { getReleasablePackages } from '../lib/packages.mjs';
32

43
/**
54
* The configuration for `ng-dev commit-message` commands.
5+
*
6+
* @type { import("@angular/ng-dev").CommitMessageConfig }
67
*/
7-
export const commitMessage: CommitMessageConfig = {
8+
export const commitMessage = {
89
maxLineLength: Infinity,
910
minBodyLength: 0,
1011
minBodyLengthTypeExcludes: ['docs'],
1112
// Note: When changing this logic, also change the `contributing.ejs` file.
12-
scopes: [...Object.keys(packages.packages)],
13+
scopes: getReleasablePackages().map(({ name }) => name),
1314
};
File renamed without changes.

.ng-dev/format.mts renamed to .ng-dev/format.mjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { FormatConfig } from '@angular/ng-dev';
2-
31
/**
42
* Configuration for the `ng-dev format` command.
3+
*
4+
* @type { import("@angular/ng-dev").FormatConfig }
55
*/
6-
export const format: FormatConfig = {
6+
export const format = {
77
'prettier': {
88
matchers: ['**/*.{ts,js,json,yml,yaml,md}'],
99
},

.ng-dev/github.mts renamed to .ng-dev/github.mjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { GithubConfig } from '@angular/ng-dev';
2-
31
/**
42
* Github configuration for the ng-dev command. This repository is
5-
* uses as remote for the merge script.
3+
* used as remote for the merge script.
4+
*
5+
* @type { import("@angular/ng-dev").GithubConfig }
66
*/
7-
export const github: GithubConfig = {
7+
export const github = {
88
owner: 'angular',
99
name: 'angular-cli',
1010
mainBranchName: 'main',

.ng-dev/pull-request.mts renamed to .ng-dev/pull-request.mjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { PullRequestConfig } from '@angular/ng-dev';
2-
31
/**
42
* Configuration for the merge tool in `ng-dev`. This sets up the labels which
53
* are respected by the merge script (e.g. the target labels).
4+
*
5+
* @type { import("@angular/ng-dev").PullRequestConfig }
66
*/
7-
export const pullRequest: PullRequestConfig = {
7+
export const pullRequest = {
88
githubApiMerge: {
99
default: 'rebase',
1010
labels: [{ pattern: 'merge: squash commits', method: 'squash' }],

.ng-dev/release.mts renamed to .ng-dev/release.mjs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
import semver from 'semver';
2-
import { ReleaseConfig } from '@angular/ng-dev';
3-
import packages from '../lib/packages.js';
2+
import { getReleasablePackages } from '../lib/packages.mjs';
43

5-
const npmPackages = Object.entries(packages.releasePackages).map(([name, { experimental }]) => ({
6-
name,
7-
experimental,
8-
}));
4+
const packages = getReleasablePackages();
95

10-
/** Configuration for the `ng-dev release` command. */
11-
export const release: ReleaseConfig = {
6+
/**
7+
* Configuration for the `ng-dev release` command.
8+
*
9+
* @type { import("@angular/ng-dev").ReleaseConfig }
10+
*/
11+
export const release = {
1212
representativeNpmPackage: '@angular/cli',
13-
npmPackages,
13+
npmPackages: packages.map(({ name, experimental }) => ({ name, experimental })),
1414
buildPackages: async () => {
1515
// The `performNpmReleaseBuild` function is loaded at runtime to avoid loading additional
1616
// files and dependencies unless a build is required.
1717
const { performNpmReleaseBuild } = await import('../scripts/build-packages-dist.mjs');
1818
return performNpmReleaseBuild();
1919
},
20-
prereleaseCheck: async (newVersionStr: string) => {
20+
prereleaseCheck: async (newVersionStr) => {
2121
const newVersion = new semver.SemVer(newVersionStr);
2222
const { assertValidDependencyRanges } = await import(
2323
'../scripts/release-checks/dependency-ranges/index.mjs'
2424
);
2525

26-
await assertValidDependencyRanges(newVersion, packages.releasePackages);
26+
await assertValidDependencyRanges(newVersion, packages);
2727
},
2828
releaseNotes: {
2929
groupOrder: [

.ng-dev/tsconfig.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
{
22
"extends": "../tsconfig.json",
33
"compilerOptions": {
4+
"resolveJsonModule": true,
5+
"allowJs": true,
46
"module": "Node16",
57
"moduleResolution": "Node16",
8+
"checkJs": true,
69
"noEmit": true,
710
"types": []
811
},
9-
"include": ["**/*.mts"],
12+
"include": ["**/*.mjs"],
1013
"exclude": []
1114
}

lib/packages.mjs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* @license
3+
* Copyright Google LLC All Rights Reserved.
4+
*
5+
* Use of this source code is governed by an MIT-style license that can be
6+
* found in the LICENSE file at https://angular.io/license
7+
*/
8+
9+
import fastGlob from 'fast-glob';
10+
import { readFileSync } from 'node:fs';
11+
import { createRequire } from 'node:module';
12+
13+
const require = createRequire(import.meta.url);
14+
const monorepoData = require('../.monorepo.json');
15+
16+
export function getReleasablePackages() {
17+
const packages = [];
18+
for (const pkg of fastGlob.sync('./packages/*/*/package.json')) {
19+
const data = JSON.parse(readFileSync(pkg, 'utf-8'));
20+
if (!(data.name in monorepoData.packages)) {
21+
throw new Error(`${data.name} does not exist in .monorepo.json`);
22+
}
23+
24+
if (data.private) {
25+
continue;
26+
}
27+
28+
packages.push(data);
29+
}
30+
31+
return packages;
32+
}

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@
2424
"build:bazel": "node ./bin/devkit-admin build-bazel",
2525
"build-tsc": "tsc -p tsconfig.json",
2626
"lint": "eslint --cache --max-warnings=0 \"**/*.ts\"",
27-
"ng-dev": "ts-node --esm --project .ng-dev/tsconfig.json --transpile-only node_modules/@angular/ng-dev/bundles/cli.mjs",
2827
"templates": "node ./bin/devkit-admin templates",
2928
"validate": "node ./bin/devkit-admin validate",
3029
"postinstall": "yarn webdriver-update && yarn husky install",
3130
"//webdriver-update-README": "ChromeDriver version must match Puppeteer Chromium version, see https://github.com/GoogleChrome/puppeteer/releases http://chromedriver.chromium.org/downloads",
3231
"webdriver-update": "webdriver-manager update --standalone false --gecko false --versions.chrome 106.0.5249.21",
3332
"public-api:check": "node goldens/public-api/manage.js test",
33+
"ng-dev": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only node_modules/@angular/ng-dev/bundles/cli.mjs",
3434
"public-api:update": "node goldens/public-api/manage.js accept",
3535
"ts-circular-deps:check": "yarn -s ng-dev ts-circular-deps check --config ./packages/circular-deps-test.conf.js",
3636
"ts-circular-deps:approve": "yarn -s ng-dev ts-circular-deps approve --config ./packages/circular-deps-test.conf.js",
@@ -75,7 +75,7 @@
7575
"@angular/forms": "15.2.0-rc.0",
7676
"@angular/localize": "15.2.0-rc.0",
7777
"@angular/material": "15.1.4",
78-
"@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#fa4d4694084d46886ca28fd09768a7df69b5b84d",
78+
"@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#262c6ede0815bb2ba6fbe6f1790eaaa77ce84c9c",
7979
"@angular/platform-browser": "15.2.0-rc.0",
8080
"@angular/platform-browser-dynamic": "15.2.0-rc.0",
8181
"@angular/platform-server": "15.2.0-rc.0",

0 commit comments

Comments
 (0)