[READ-ONLY] Mirror of https://github.com/bombshell-dev/clack. Effortlessly build beautiful command-line apps bomb.sh/docs/clack/basics/getting-started/
cli command-line command-line-app node prompt prompts
5

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'main' into patch-1

# Conflicts:
# packages/prompts/src/index.ts

Colin (Mar 24, 2023, 4:30 PM +0800) 2cdf8086 bcd9a6d3

+45 -1
+5
.changeset/loud-bugs-move.md
··· 1 + --- 2 + '@clack/prompts': minor 3 + --- 4 + 5 + feat(@clack/prompts): new method `spinner.message(msg: string)`
+2 -1
examples/basic/package.json
··· 9 9 "picocolors": "^1.0.0" 10 10 }, 11 11 "scripts": { 12 - "start": "jiti ./index.ts" 12 + "start": "jiti ./index.ts", 13 + "spinner": "jiti ./spinner.ts" 13 14 }, 14 15 "devDependencies": { 15 16 "jiti": "^1.17.0"
+22
examples/basic/spinner.ts
··· 1 + import * as p from '@clack/prompts'; 2 + 3 + p.intro('spinner start...'); 4 + 5 + const spin = p.spinner(); 6 + const total = 10000; 7 + let progress = 0; 8 + spin.start(); 9 + 10 + new Promise((resolve) => { 11 + const timer = setInterval(() => { 12 + progress = Math.min(total, progress + 100); 13 + if (progress >= total) { 14 + clearInterval(timer); 15 + resolve(true); 16 + } 17 + spin.message(`Loading packages [${progress}/${total}]`); // <=== 18 + }, 100); 19 + }).then(() => { 20 + spin.stop(`Done`); 21 + p.outro('spinner stop...'); 22 + });
+16
packages/prompts/src/index.ts
··· 607 607 export const spinner = () => { 608 608 let unblock: () => void; 609 609 let loop: NodeJS.Timer; 610 + <<<<<<< HEAD 610 611 let message = '' 611 612 const delay = unicode ? 80 : 120; 612 613 return { 613 614 start(msg = '') { 614 615 this.message(msg) 615 616 message = _message.replace(/\.?\.?\.$/, ''); 617 + ======= 618 + let message = ''; 619 + const delay = unicode ? 80 : 120; 620 + return { 621 + start(msg = '') { 622 + this.message(msg); 623 + message = message.replace(/\.?\.?\.$/, ''); 624 + >>>>>>> main 616 625 unblock = block(); 617 626 process.stdout.write(`${color.gray(S_BAR)}\n${color.magenta('○')} ${message}\n`); 618 627 let i = 0; ··· 630 639 }, delay); 631 640 }, 632 641 message(msg = '') { 642 + <<<<<<< HEAD 633 643 message = msg ?? message 634 644 }, 635 645 stop(msg = '') { 636 646 this.message(msg) 647 + ======= 648 + message = msg ?? message; 649 + }, 650 + stop(msg = '') { 651 + this.message(msg); 652 + >>>>>>> main 637 653 process.stdout.write(cursor.move(-999, -2)); 638 654 process.stdout.write(erase.down(2)); 639 655 clearInterval(loop);