Skip to content

Commit 85c6e39

Browse files
committed
build: use Node.js built-in TypeScript support for dev-infra scripts
This change removes the use of `ts-node` to execute both `ng-dev` and the repo dev scripts. Due to the use of enums imports from `@angular/cli` package code for the analytics validation, the `admin` package script currently requires the `--experimental-transform-types` option.
1 parent c1f9b7f commit 85c6e39

File tree

15 files changed

+30
-26
lines changed

15 files changed

+30
-26
lines changed

.ng-dev/commit-message.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { packages } from '../scripts/packages.mjs';
1+
import { packages } from '../scripts/packages.mts';
22

33
/**
44
* The configuration for `ng-dev commit-message` commands.

.ng-dev/release.mjs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import semver from 'semver';
2-
import { releasePackages } from '../scripts/packages.mjs';
2+
import { releasePackages } from '../scripts/packages.mts';
33

44
/**
55
* Configuration for the `ng-dev release` command.
@@ -12,14 +12,13 @@ export const release = {
1212
buildPackages: async () => {
1313
// The `performNpmReleaseBuild` function is loaded at runtime to avoid loading additional
1414
// files and dependencies unless a build is required.
15-
const { performNpmReleaseBuild } = await import('../scripts/build-packages-dist.mjs');
15+
const { performNpmReleaseBuild } = await import('../scripts/build-packages-dist.mts');
1616
return performNpmReleaseBuild();
1717
},
1818
prereleaseCheck: async (newVersionStr) => {
1919
const newVersion = new semver.SemVer(newVersionStr);
20-
const { assertValidDependencyRanges } = await import(
21-
'../scripts/release-checks/dependency-ranges/index.mjs'
22-
);
20+
const { assertValidDependencyRanges } =
21+
await import('../scripts/release-checks/dependency-ranges/index.mts');
2322

2423
await assertValidDependencyRanges(newVersion, releasePackages);
2524
},

.ng-dev/tsconfig.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
"compilerOptions": {
44
"resolveJsonModule": true,
55
"allowJs": true,
6+
"rewriteRelativeImportExtensions": true,
7+
"erasableSyntaxOnly": true,
8+
"verbatimModuleSyntax": true,
69
"module": "Node16",
710
"moduleResolution": "Node16",
811
"checkJs": true,

package.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"Angular DevKit"
1212
],
1313
"scripts": {
14-
"admin": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only ./scripts/devkit-admin.mjs",
14+
"admin": "node --no-warnings=ExperimentalWarning --experimental-transform-types ./scripts/devkit-admin.mts",
1515
"bazel": "bazelisk",
1616
"test": "bazel test //packages/...",
1717
"build": "pnpm -s admin build",
@@ -20,10 +20,9 @@
2020
"templates": "pnpm -s admin templates",
2121
"validate": "pnpm -s admin validate",
2222
"postinstall": "husky",
23-
"ng-dev": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only node_modules/@angular/ng-dev/bundles/cli.mjs",
24-
"ts-circular-deps": "pnpm -s ng-dev ts-circular-deps --config ./scripts/circular-deps-test.conf.mjs",
23+
"ts-circular-deps": "ng-dev ts-circular-deps --config ./scripts/circular-deps-test.conf.mjs",
2524
"check-tooling-setup": "tsc --project .ng-dev/tsconfig.json",
26-
"diff-release-package": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only scripts/diff-release-package.mts"
25+
"diff-release-package": "node scripts/diff-release-package.mts"
2726
},
2827
"repository": {
2928
"type": "git",

scripts/build-packages-dist.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* distribution folder within the project.
1313
*/
1414

15-
import { BuiltPackage } from '@angular/ng-dev';
15+
import type { BuiltPackage } from '@angular/ng-dev';
1616
import { execSync } from 'node:child_process';
1717
import {
1818
chmodSync,

scripts/circular-deps-test.conf.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import { statSync } from 'node:fs';
1010
import { join } from 'node:path';
1111

12-
import { packages } from './packages.mjs';
12+
import { packages } from './packages.mts';
1313

1414
export const baseDir = '../';
1515
export const goldenFile = '../goldens/circular-deps/packages.json';

scripts/create.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import * as child_process from 'node:child_process';
1111
import { copyFile, readFile, rm, writeFile } from 'node:fs/promises';
1212
import * as path from 'node:path';
1313
import { pathToFileURL } from 'node:url';
14-
import build from './build.mjs';
15-
import { packages } from './packages.mjs';
14+
import build from './build.mts';
15+
import { packages } from './packages.mts';
1616

1717
export interface CreateOptions extends Record<string, unknown> {
1818
_: string[];

scripts/devkit-admin.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ console.error = function (...args) {
4242
};
4343

4444
try {
45-
const script = await import(`./${scriptName}.mjs`);
45+
const script = await import(`./${scriptName}.mts`);
4646
const exitCode = await script.default(args, cwd);
4747
process.exitCode = typeof exitCode === 'number' ? exitCode : 0;
4848
// eslint-disable-next-line @typescript-eslint/no-explicit-any

scripts/json-help.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { spawnSync } from 'node:child_process';
1010
import { promises as fs } from 'node:fs';
1111
import * as os from 'node:os';
1212
import * as path from 'node:path';
13-
import create from './create.mjs';
13+
import create from './create.mts';
1414

1515
const __dirname = import.meta.dirname;
1616

scripts/release-checks/dependency-ranges/index.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
import { Log, ReleasePrecheckError, bold } from '@angular/ng-dev';
1010
import semver from 'semver';
11-
import { checkSchematicsAngularLatestVersion } from './latest-versions-check.mjs';
12-
import { PackageJson, checkPeerDependencies } from './peer-deps-check.mjs';
11+
import { checkSchematicsAngularLatestVersion } from './latest-versions-check.mts';
12+
import { type PackageJson, checkPeerDependencies } from './peer-deps-check.mts';
1313

1414
/** Environment variable that can be used to skip this pre-check. */
1515
const skipEnvVar = 'SKIP_DEPENDENCY_RANGE_PRECHECK';

0 commit comments

Comments
 (0)