Charles Lyding 084eff6965 fix(@angular/cli): exclude packages from ng add that contain invalid peer dependencies
Certain older versions of packages may contain missing or invalid peer dependencies. As a result these packages may be incorrectly added to the project when no newer compatible version is found. An exclusion list is now present within `ng add` that will exclude packages with known peer dependency concerns from consideration when adding a package. Currently, only `@angular/localize@9.x` is included in the list.
2021-10-27 04:43:37 -05:00

60 lines
1.2 KiB
TypeScript

/**
* @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
*/
import ora from 'ora';
import { colors } from './color';
export class Spinner {
private readonly spinner: ora.Ora;
/** When false, only fail messages will be displayed. */
enabled = true;
constructor(text?: string) {
this.spinner = ora({
text,
// The below 2 options are needed because otherwise CTRL+C will be delayed
// when the underlying process is sync.
hideCursor: false,
discardStdin: false,
});
}
set text(text: string) {
this.spinner.text = text;
}
succeed(text?: string): void {
if (this.enabled) {
this.spinner.succeed(text);
}
}
info(text?: string): void {
this.spinner.info(text);
}
fail(text?: string): void {
this.spinner.fail(text && colors.redBright(text));
}
warn(text?: string): void {
this.spinner.warn(text && colors.yellowBright(text));
}
stop(): void {
this.spinner.stop();
}
start(text?: string): void {
if (this.enabled) {
this.spinner.start(text);
}
}
}