spinnies
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/spinnies package

    0.5.1 • Public • Published

    spin Spinnies spin

    Node.js module to create and manage multiple spinners in command-line interface programs

    npm CircleCI standard-readme compliant License: MIT


    Installation

    $ npm i spinnies
    

    Usage & Example

    const spinnies = new Spinnies();
     
    spinnies.add('spinner-1', { text: 'I am a spinner' });
    spinnies.add('spinner-2', { text: 'I am another spinner' });
     
    setTimeout(() => {
      spinnies.succeed('spinner-1', { text: 'Success!' });
      spinnies.fail('spinner-2', { text: 'Fail :(' });
    }, 2000);

    API

    This library follows a non-error-throwing philosophy. If you provide an invalid option or an invalid value for a valid option it will be ignored.

    Initialization:

    new Spinnies([options])

    Parameters

    • options - object:
      • color - string: Any valid chalk color. The default value is white.

      • succeedColor - string: Any valid chalk color. The default value is green.

      • failColor - string: Any valid chalk color. The default value is red.

      • spinnerColor - string: Any valid chalk color. The default value is greenBright.

      • succeedPrefix - string: The default value is ✓.

      • failPrefix- string: The default value is ✖.

      • spinner- object:

        • interval - number
        • frames - string[]

        You can see the already provided spinner here.

      • disableSpins - boolean: Disable spins (will still print raw messages).

    Note: If you are working in any win32 platform, the default spin animation will be overriden. You can get rid of this defining a different spinner animation manually, or by using the integrated VSCode terminal or Windows Terminal.

    Example:

    const spinner = { interval: 80, frames: ['🍇', '🍈', '🍉', '🍋'] }
    const spinnies = new Spinnies({ color: 'blue', succeedColor: 'green', spinner });

    Instance methods:

    add(name, [options])

    Adds a new spinner with the given name.

    Parameters:

    • name - string: spinner reference name.
    • options - object:
      • text: - string: Optional text to show in the spinner. If none is provided, the name field will be shown.
      • indent: - number: Optional, indent the spinner with the given number of spaces.
      • status - string: Initial status of the spinner. Valid statuses are: succeed, fail, spinning, non-spinnableand stopped.
      • color - string: Any valid chalk color.
      • succeedColor - string: Any valid chalk color.
      • failColor - string: Any valid chalk color.

    Return value: Returns the spinner's options.

    Example:

    const spinnies = new Spinnies();
    spinnies.add('spinner-1');
    spinnies.add('another-spinner', { text: 'Hello, I am a spinner!', color: 'greenBright' });
     

    pick(name)

    Picks a spinner.

    Parameters:

    • name - string: spinner reference name.

    Return value: Returns the spinner's options.

    remove(name)

    Removes a spinner.

    Parameters:

    • name - string: spinner reference name.

    Return value: Returns the spinner's options.

    update(name, [options])

    Updates the spinner with name name with the provided options.

    Parameters:

    • name - string: spinner reference name.
    • options - object:
      • text: - string: Optional text to show in the spinner. If none is provided, the name field will be shown.
      • status - string: New status of the spinner. Valid statuses are: succeed, fail, spinning, non-spinnableand stopped.
      • color - string: Any valid chalk color.
      • succeedColor - string: Any valid chalk color.
      • failColor - string: Any valid chalk color.

    Return value: Returns the spinner's options.

    Example:

    const spinnies = new Spinnies();
    spinnies.add('spinner-1', { text: 'Hello! I am the initial text', color: 'green' });
    // some code
    spinnies.update('spinner-1', { text: 'Hello, I am an updated text!', color: 'blue' });
     

    succeed(name, [options])

    Sets the specified spinner status as succeed.

    Parameters:

    • name - string: spinner reference name.
    • options - object:
      • text: - string: Optional text to show in the spinner. If none is provided, the name field will be shown.
      • succeedColor - string: Any valid chalk color.

    Return value: Returns the spinner's options.

    Example:

    const spinnies = new Spinnies();
    spinnies.add('spinner-1', { text: 'Hello! I am the initial text', color: 'green' });
    // some code
    spinnies.succeed('spinner-1', { text: 'Success!', successColor: 'greenBright' });
     

    fail(name, [options])

    Sets the specified spinner status as fail.

    Parameters:

    • name - string: spinner reference name.
    • options - object:
      • text: - string: Optional text to show in the spinner. If none is provided, the name field will be shown.
      • failColor - string: Any valid chalk color.

    Return value: Returns the spinner's options.

    Example:

    const spinnies = new Spinnies();
    spinnies.add('spinner-1', { text: 'Hello! I am the initial text', color: 'green' });
    // some code
    spinnies.fail('spinner-1', { text: 'I failed', failColor: 'redBright' });
     

    stopAll([status])

    Stops the spinners and sets the non-succeeded and non-failed ones to the provided status, which can be succeed, fail or stopped. You can see an example here.

    hasActiveSpinners()

    Return value: returns false if all spinners have succeeded, failed or have been stopped.

    Contribute

    Star it, fork it, improve it, PR it! 🙌.

    Acknowledgements

    Thanks to chalk for helping making this lib colorful 🌈 and to ora which was a great inspiration 🦄.

    License

    MIT

    Install

    npm i spinnies

    DownloadsWeekly Downloads

    38,676

    Version

    0.5.1

    License

    MIT

    Unpacked Size

    40.8 kB

    Total Files

    13

    Last publish

    Collaborators

    • jcarpanelli