mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
12bad6576d
If a library is compiling with Angular v16.1.0, the library will break for users that are still on Angular v16.0.x. This happens because the `DirectiveDeclaration` or `ComponentDeclaration` types are not expecting an extra field for `signals` metadata. This field was only added to the generic types in `16.1.0`- so compilations fail with errors like this: ``` Error: node_modules/@angular/material/icon/index.d.ts:204:18 - error TS2707: Generic type 'ɵɵComponentDeclaration' requires between 7 and 9 type arguments. ``` To fix this, we quickly roll back the code for inserting this metadata field. That way, libraries remain compatible with all v16.x framework versions. We continue to include the `signals` metadata if `signals: true` is set. This is not public API anyway right now- so cannot happen- but imagine we expose some signal APIs in e.g. 16.2.x, then we'd need this metadata and can reasonably expect signal-component library users to use a more recent framework core version. PR Close #50714
37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* @license
|
|
* Copyright Google LLC All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
// tslint:disable:no-console
|
|
import shelljs from 'shelljs';
|
|
const {exec} = shelljs;
|
|
|
|
process.stdout.write('Gathering all partial golden update targets');
|
|
const queryCommand =
|
|
`bazel query --output label 'filter('golden.update', kind(nodejs_binary, //packages/compiler-cli/test/compliance/test_cases:*))'`;
|
|
const allUpdateTargets =
|
|
exec(queryCommand, {silent: true}).trim().split('\n').map(test => test.trim());
|
|
process.stdout.clearLine();
|
|
process.stdout.cursorTo(0);
|
|
|
|
for (const [index, target] of allUpdateTargets.entries()) {
|
|
const progress = `${index + 1} / ${allUpdateTargets.length}`;
|
|
process.stdout.write(`[${progress}] Running: ${target}`);
|
|
const commandResult = exec(`bazel run ${target}`, {silent: true});
|
|
process.stdout.clearLine();
|
|
process.stdout.cursorTo(0);
|
|
if (commandResult.code) {
|
|
console.error(`[${progress}] Failed run: ${target}`);
|
|
console.group();
|
|
console.error(commandResult.stdout || commandResult.stderr);
|
|
console.groupEnd();
|
|
} else {
|
|
console.log(`[${progress}] Successful run: ${target}`);
|
|
}
|
|
}
|