diff --git a/.nvmrc b/.nvmrc index 4e31022509a8..3fae44200aee 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -10.13 +12.14 diff --git a/package.json b/package.json index d4324c126ab3..3323ec4edb15 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "@types/loader-utils": "^1.1.3", "@types/minimatch": "3.0.3", "@types/minimist": "^1.2.0", - "@types/node": "10.12.30", + "@types/node": "13.13.5", "@types/node-fetch": "^2.1.6", "@types/npm-package-arg": "^6.1.0", "@types/progress": "^2.0.3", diff --git a/packages/angular/cli/lib/init.ts b/packages/angular/cli/lib/init.ts index 817b3386a7c6..b7fcc608e734 100644 --- a/packages/angular/cli/lib/init.ts +++ b/packages/angular/cli/lib/init.ts @@ -156,7 +156,7 @@ if (process.env['NG_CLI_PROFILING']) { standardInput = process.stdin; } catch (e) { delete process.stdin; - process.stdin = new Duplex(); + process.stdin = new Duplex() as NodeJS.ReadStream; standardInput = process.stdin; } diff --git a/packages/angular_devkit/benchmark/src/monitored-process.ts b/packages/angular_devkit/benchmark/src/monitored-process.ts index fecd311c8103..c399daeaa1ae 100644 --- a/packages/angular_devkit/benchmark/src/monitored-process.ts +++ b/packages/angular_devkit/benchmark/src/monitored-process.ts @@ -50,8 +50,8 @@ export class LocalMonitoredProcess implements MonitoredProcess { const childProcess = spawn(cmd, args, spawnOptions); // Emit output and stats. - childProcess.stdout.on('data', (data: Buffer) => this.stdout.next(data)); - childProcess.stderr.on('data', (data: Buffer) => this.stderr.next(data)); + childProcess.stdout?.on('data', (data: Buffer) => this.stdout.next(data)); + childProcess.stderr?.on('data', (data: Buffer) => this.stderr.next(data)); const statsSubs = timer(0, this.pollingRate).pipe( concatMap(() => from(pidtree(childProcess.pid, { root: true }))), concatMap((pids: number[]) => from(pidusage(pids, { maxage: 5 * this.pollingRate }))), diff --git a/packages/angular_devkit/build_angular/src/dev-server/index.ts b/packages/angular_devkit/build_angular/src/dev-server/index.ts index 3a69be9611da..74ed82e8038b 100644 --- a/packages/angular_devkit/build_angular/src/dev-server/index.ts +++ b/packages/angular_devkit/build_angular/src/dev-server/index.ts @@ -169,7 +169,7 @@ export function serveWebpackBrowser( publicHost = `${options.ssl ? 'https' : 'http'}://${publicHost}`; } clientAddress = url.parse(publicHost); - options.publicHost = clientAddress.host; + options.publicHost = clientAddress.host ?? undefined; } // Add live reload config. diff --git a/packages/angular_devkit/build_webpack/src/webpack-dev-server/index.ts b/packages/angular_devkit/build_webpack/src/webpack-dev-server/index.ts index d574c24f0d83..c9edfc7322d7 100644 --- a/packages/angular_devkit/build_webpack/src/webpack-dev-server/index.ts +++ b/packages/angular_devkit/build_webpack/src/webpack-dev-server/index.ts @@ -92,6 +92,9 @@ export function runWebpackDevServer( obs.error(err); } else { const address = this.address(); + if (address === null) { + throw new Error('Server is not listening'); + } result = { success: true, port: typeof address === 'string' ? 0 : address.port, diff --git a/packages/angular_devkit/core/node/host.ts b/packages/angular_devkit/core/node/host.ts index 5db3fb399bcd..f0eab55ce501 100644 --- a/packages/angular_devkit/core/node/host.ts +++ b/packages/angular_devkit/core/node/host.ts @@ -58,10 +58,10 @@ function loadFSWatcher() { } } -type FsFunction0 = (cb: (err?: Error, result?: R) => void) => void; -type FsFunction1 = (p1: T1, cb: (err?: Error, result?: R) => void) => void; +type FsFunction0 = (cb: (err?: Error|null, result?: R) => void) => void; +type FsFunction1 = (p1: T1, cb: (err?: Error|null, result?: R) => void) => void; type FsFunction2 - = (p1: T1, p2: T2, cb: (err?: Error, result?: R) => void) => void; + = (p1: T1, p2: T2, cb: (err?: Error|null, result?: R) => void) => void; function _callFs(fn: FsFunction0): Observable; @@ -70,7 +70,7 @@ function _callFs(fn: FsFunction2, p1: T1, p2: T2): Observa function _callFs(fn: Function, ...args: {}[]): Observable { return new Observable(obs => { - fn(...args, (err?: Error, result?: ResultT) => { + fn(...args, (err?: Error|null, result?: ResultT) => { if (err) { obs.error(err); } else { @@ -176,12 +176,12 @@ export class NodeJsAsyncHost implements virtualFs.Host { } isDirectory(path: Path): Observable { - return _callFs(fs.stat, getSystemPath(path)).pipe( + return _callFs(fs.stat, getSystemPath(path)).pipe( map(stat => stat.isDirectory()), ); } isFile(path: Path): Observable { - return _callFs(fs.stat, getSystemPath(path)).pipe( + return _callFs(fs.stat, getSystemPath(path)).pipe( map(stat => stat.isFile()), ); } diff --git a/packages/angular_devkit/core/src/terminal/caps.ts b/packages/angular_devkit/core/src/terminal/caps.ts index 2dc11534a0f0..c6edc53b6921 100644 --- a/packages/angular_devkit/core/src/terminal/caps.ts +++ b/packages/angular_devkit/core/src/terminal/caps.ts @@ -7,7 +7,6 @@ */ import ReadableStream = NodeJS.ReadableStream; import WriteStream = NodeJS.WriteStream; -import Socket = NodeJS.Socket; const supportsColor = require('../../third_party/github.com/chalk/supports-color'); /** @@ -76,7 +75,7 @@ function _getColumns() { function _createCapabilities( - stream: Socket, + stream: WriteStream, isTerminalStream: boolean, level: 0|1|2|3 = supportsColor.stdout.level, ): StreamCapabilities { @@ -96,7 +95,7 @@ function _createCapabilities( export function getCapabilities( - stream: Socket, + stream: WriteStream, isTerminalStream = !!stream.isTTY, ): StreamCapabilities { let maybeCaps = streamMap.get(stream); diff --git a/packages/angular_devkit/schematics/tasks/package-manager/executor.ts b/packages/angular_devkit/schematics/tasks/package-manager/executor.ts index 0c74c7335900..6a97e832c6d5 100644 --- a/packages/angular_devkit/schematics/tasks/package-manager/executor.ts +++ b/packages/angular_devkit/schematics/tasks/package-manager/executor.ts @@ -125,9 +125,9 @@ export default function( } }); if (options.hideOutput) { - childProcess.stdout.on('data', (data: Buffer) => + childProcess.stdout?.on('data', (data: Buffer) => bufferedOutput.push({ stream: process.stdout, data: data })); - childProcess.stderr.on('data', (data: Buffer) => + childProcess.stderr?.on('data', (data: Buffer) => bufferedOutput.push({ stream: process.stderr, data: data })); } }); diff --git a/packages/ngtools/webpack/src/angular_compiler_plugin.ts b/packages/ngtools/webpack/src/angular_compiler_plugin.ts index c2ed7981f93c..ed78a6dfdb73 100644 --- a/packages/ngtools/webpack/src/angular_compiler_plugin.ts +++ b/packages/ngtools/webpack/src/angular_compiler_plugin.ts @@ -565,7 +565,7 @@ export class AngularCompilerPlugin { // Handle child messages. this._typeCheckerProcess.on('message', message => { - switch (message.kind) { + switch ((message as {kind: MESSAGE_KIND}).kind) { case MESSAGE_KIND.Log: const logMessage = message as LogMessage; this._logger.log(logMessage.level, `\n${logMessage.message}`); diff --git a/tsconfig.json b/tsconfig.json index dc59414d663f..83c7fd917578 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,7 +27,7 @@ "./node_modules/@types" ], "types": [ - "node" + "node/v12" ], "paths": { "@_/benchmark": [ "./packages/_/benchmark/src/index" ], diff --git a/yarn.lock b/yarn.lock index 956a887cb426..05ff8deff0cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1453,10 +1453,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.4.tgz#1581d6c16e3d4803eb079c87d4ac893ee7501c2c" integrity sha512-x26ur3dSXgv5AwKS0lNfbjpCakGIduWU1DU91Zz58ONRWrIKGunmZBNv4P7N+e27sJkiGDsw/3fT4AtsqQBrBA== -"@types/node@10.12.30": - version "10.12.30" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.30.tgz#4c2b4f0015f214f8158a347350481322b3b29b2f" - integrity sha512-nsqTN6zUcm9xtdJiM9OvOJ5EF0kOI8f1Zuug27O/rgtxCRJHGqncSWfCMZUP852dCKPsDsYXGvBhxfRjDBkF5Q== +"@types/node@13.13.5": + version "13.13.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.5.tgz#96ec3b0afafd64a4ccea9107b75bf8489f0e5765" + integrity sha512-3ySmiBYJPqgjiHA7oEaIo2Rzz0HrOZ7yrNO5HWyaE5q0lQ3BppDZ3N53Miz8bw2I7gh1/zir2MGVZBvpb1zq9g== "@types/node@^10.1.0": version "10.17.21"