fix(core): graph spinners should update properly (#29433)
## Current Behavior Spinners are not updated properly ## Expected Behavior Spinners are updated properly ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Fixes #
This commit is contained in:
parent
16c8ba164c
commit
09800062e7
@ -319,13 +319,14 @@ async function updateProjectGraphWithPlugins(
|
||||
const inProgressPlugins = new Set<string>();
|
||||
|
||||
function updateSpinner() {
|
||||
if (!spinner) {
|
||||
if (!spinner || inProgressPlugins.size === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (inProgressPlugins.size === 1) {
|
||||
spinner.setMessage(
|
||||
`Creating project graph dependencies with ${
|
||||
inProgressPlugins.keys()[0]
|
||||
inProgressPlugins.values().next().value
|
||||
}`
|
||||
);
|
||||
} else if (process.env.NX_VERBOSE_LOGGING === 'true') {
|
||||
@ -439,12 +440,15 @@ export async function applyProjectMetadata(
|
||||
const inProgressPlugins = new Set<string>();
|
||||
|
||||
function updateSpinner() {
|
||||
if (!spinner) {
|
||||
if (!spinner || inProgressPlugins.size === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (inProgressPlugins.size === 1) {
|
||||
spinner.setMessage(
|
||||
`Creating project metadata with ${inProgressPlugins.keys()[0]}`
|
||||
`Creating project metadata with ${
|
||||
inProgressPlugins.values().next().value
|
||||
}`
|
||||
);
|
||||
} else if (process.env.NX_VERBOSE_LOGGING === 'true') {
|
||||
spinner.setMessage(
|
||||
|
||||
@ -330,13 +330,15 @@ export async function createProjectConfigurations(
|
||||
const inProgressPlugins = new Set<string>();
|
||||
|
||||
function updateSpinner() {
|
||||
if (!spinner) {
|
||||
if (!spinner || inProgressPlugins.size === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (inProgressPlugins.size === 1) {
|
||||
spinner.setMessage(
|
||||
`Creating project graph nodes with ${inProgressPlugins.keys()[0]}`
|
||||
`Creating project graph nodes with ${
|
||||
inProgressPlugins.values().next().value
|
||||
}`
|
||||
);
|
||||
} else if (process.env.NX_VERBOSE_LOGGING === 'true') {
|
||||
spinner.setMessage(
|
||||
|
||||
@ -15,8 +15,9 @@ export type DelayedSpinnerOptions = {
|
||||
export class DelayedSpinner {
|
||||
spinner: ora.Ora;
|
||||
timeouts: NodeJS.Timeout[] = [];
|
||||
initial: number = Date.now();
|
||||
lastMessage: string;
|
||||
|
||||
private lastMessage: string;
|
||||
private ready: boolean;
|
||||
|
||||
/**
|
||||
* Constructs a new {@link DelayedSpinner} instance.
|
||||
@ -29,10 +30,11 @@ export class DelayedSpinner {
|
||||
|
||||
this.timeouts.push(
|
||||
setTimeout(() => {
|
||||
this.ready = true;
|
||||
if (!SHOULD_SHOW_SPINNERS) {
|
||||
console.warn(message);
|
||||
console.warn(this.lastMessage);
|
||||
} else {
|
||||
this.spinner = ora(message);
|
||||
this.spinner = ora(this.lastMessage).start();
|
||||
}
|
||||
this.lastMessage = message;
|
||||
}, delay).unref()
|
||||
@ -46,12 +48,14 @@ export class DelayedSpinner {
|
||||
* @returns The {@link DelayedSpinner} instance
|
||||
*/
|
||||
setMessage(message: string) {
|
||||
if (this.spinner && SHOULD_SHOW_SPINNERS) {
|
||||
this.spinner.text = message;
|
||||
} else if (this.lastMessage && this.lastMessage !== message) {
|
||||
if (SHOULD_SHOW_SPINNERS) {
|
||||
if (this.spinner) {
|
||||
this.spinner.text = message;
|
||||
}
|
||||
} else if (this.ready && this.lastMessage && this.lastMessage !== message) {
|
||||
console.warn(message);
|
||||
this.lastMessage = message;
|
||||
}
|
||||
this.lastMessage = message;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -91,6 +95,6 @@ function normalizeDelayedSpinnerOpts(
|
||||
) {
|
||||
opts ??= {};
|
||||
opts.delay ??= 500;
|
||||
opts.ciDelay ??= 10_000;
|
||||
opts.ciDelay ??= 30_000;
|
||||
return opts;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user