Skip to content

Commit f6171a2

Browse files
authored
update start spinner api to accept the id instead of generating a new (#2532)
1 parent 7d1415e commit f6171a2

File tree

4 files changed

+19
-9
lines changed

4 files changed

+19
-9
lines changed

.changeset/hip-pens-walk.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@aws-amplify/cli-core': patch
3+
---
4+
5+
update start spinner api to accept the id instead of generating a new

packages/cli-core/API.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export class Printer {
9494
log: (message: string, level?: LogLevel) => void;
9595
print: (message: string) => void;
9696
printNewLine: () => void;
97-
startSpinner: (message: string, options?: {
97+
startSpinner: (id: string, message: string, options?: {
9898
timeoutSeconds: number;
9999
}) => string;
100100
stopSpinner: (id: string) => void;

packages/cli-core/src/printer/printer.test.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ import { after, before, beforeEach, describe, it, mock } from 'node:test';
22
import assert from 'assert';
33
import { LogLevel, Printer } from './printer.js';
44
import tty from 'node:tty';
5+
import { randomUUID } from 'node:crypto';
56

67
void describe('Printer', () => {
78
const mockedWrite = mock.method(process.stdout, 'write');
89
let originalWrite: typeof process.stdout.write;
9-
10+
let spinnerId = '';
1011
const mockedTTYWrite = mock.fn();
1112
const ttyStream: tty.WriteStream = {
1213
cursorTo: mock.fn(),
@@ -27,6 +28,7 @@ void describe('Printer', () => {
2728
});
2829

2930
beforeEach(() => {
31+
spinnerId = randomUUID();
3032
mockedTTYWrite.mock.resetCalls();
3133
mockedWrite.mock.resetCalls();
3234
});
@@ -146,7 +148,7 @@ void describe('Printer', () => {
146148
50,
147149
true
148150
);
149-
const spinnerId = printer.startSpinner(message);
151+
printer.startSpinner(spinnerId, message);
150152

151153
// Wait for 190 ms
152154
await new Promise((resolve) => setTimeout(resolve, 190));
@@ -180,7 +182,7 @@ void describe('Printer', () => {
180182
50,
181183
false // simulate non-tty
182184
);
183-
const spinnerId = printer.startSpinner(message);
185+
printer.startSpinner(spinnerId, message);
184186

185187
// Wait for 190 ms such that tty would have caused multiple prints
186188
await new Promise((resolve) => setTimeout(resolve, 190));
@@ -214,7 +216,9 @@ void describe('Printer', () => {
214216
50,
215217
true
216218
);
217-
const spinnerId = printer.startSpinner(message, { timeoutSeconds: 0.1 });
219+
printer.startSpinner(spinnerId, message, {
220+
timeoutSeconds: 0.1,
221+
});
218222
assert.ok(printer.isSpinnerRunning(spinnerId));
219223
// Wait for 110 ms for the spinner to timeout
220224
await new Promise((resolve) => setTimeout(resolve, 110));
@@ -232,7 +236,9 @@ void describe('Printer', () => {
232236
50,
233237
true
234238
);
235-
const spinnerId = printer.startSpinner(message, { timeoutSeconds: 0.1 });
239+
printer.startSpinner(spinnerId, message, {
240+
timeoutSeconds: 0.1,
241+
});
236242
assert.ok(printer.isSpinnerRunning(spinnerId));
237243
// Wait for 70 ms so the spinner doesn't timeout
238244
await new Promise((resolve) => setTimeout(resolve, 70));
@@ -271,7 +277,7 @@ void describe('Printer', () => {
271277
50,
272278
true
273279
);
274-
const spinnerId = printer.startSpinner(message);
280+
printer.startSpinner(spinnerId, message);
275281
printer.updateSpinner(spinnerId, {
276282
prefixText: 'this is some prefix text',
277283
});

packages/cli-core/src/printer/printer.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { WriteStream } from 'node:tty';
22
import { EOL } from 'os';
33
import ora, { Ora, oraPromise } from 'ora';
4-
import { randomUUID } from 'node:crypto';
54

65
export type RecordValue = string | number | string[] | Date;
76

@@ -94,10 +93,10 @@ export class Printer {
9493
* @returns the id of the spinner
9594
*/
9695
startSpinner = (
96+
id: string,
9797
message: string,
9898
options: { timeoutSeconds: number } = { timeoutSeconds: 60 }
9999
): string => {
100-
const id = randomUUID();
101100
this.currentSpinners[id] = {
102101
instance: ora({
103102
text: message,

0 commit comments

Comments
 (0)