JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 144
  • Score
    100M100P100Q86043F
  • License MIT

Geeky Terminal Spinner Utility

Package Exports

  • @geek/spinner
  • @geek/spinner/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@geek/spinner) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@geek/spinner

Geeky Terminal Spinner Utility

@geek/spinner version @geek/spinner downloads @geek/spinner dependencies

Install

$ npm install --save @geek/spinner

Usage

const Spinner = require('@geek/spinner');

const spinner = Spinner('Loading unicorns').start();

setTimeout(() => {
    spinner.color = 'yellow';
    spinner.text = 'Loading rainbows';
}, 1000);

API

It will gracefully not do anything when there's no TTY or when in a CI.

Spinner([options|text])

If a string is provided, it is treated as a shortcut for options.text.

options

Type: object

text

Type: string

Text to display after the spinner.

spinner

Type: string object
Default: dots

Name of one of the provided spinners. See example.js in this repo if you want to test out different spinners.

Or an object like:

{
    interval: 80, // optional
    frames: ['-', '+', '-']
}
color

Type: string
Default: cyan
Values: black red green yellow blue magenta cyan white gray

Color of the spinner.

hideCursor

Type: boolean
Default: true

Set to false to stop Ora from hiding the cursor.

interval

Type: number
Default: Provided by the spinner or 100

Interval between each frame.

Spinners provide their own recommended interval, so you don't really need to specify this.

stream

Type: WritableStream
Default: process.stderr

Stream to write the output.

You could for example set this to process.stdout instead.

enabled

Type: boolean
Default: false

Force enabling of the spinner regardless of the stream not being run inside a TTY context and/or in a CI environment.

Instance

.start([text])

Start the spinner. Returns the instance.

.stop([text])

Stop and clear the spinner. Returns the instance.

.succeed([text])

Stop the spinner, change it to a green and persist the text. Returns the instance. See the GIF below.

.fail([text])

Stop the spinner, change it to a and persist the text. Returns the instance. See the GIF below.

.info([text])

Stop the spinner, change it to a and persist the text. Returns the instance. See the GIF below.

.note([text])

Stop the spinner, change it to a red and persist the text. Returns the instance. See the GIF below.

.stopAndPersist([symbol], [text])

Stop the spinner, change it to symbol (or ' ' if symbol is not provided) and persist the text. Returns the instance. See the GIF below.

.clear()

Clear the spinner. Returns the instance.

.render()

Manually render a new frame. Returns the instance.

.frame()

Get a new frame.

.text

Change the text.

.color

Change the spinner color.

.promise(action, [options|text])

Starts a spinner for a promise. The spinner is stopped with .succeed() if the promise fulfills or with .fail() if it rejects. Returns the spinner instance.

action

Type: Promise

ora.indent

Indent the spinner.

Modifications

This has been modified from the original sindresorhus/ora version. The following changes have been made:

  • Added indent property
  • Added optional text parameter to several functions
  • Other PRs that did not get merged

License

MIT © Sindre Sorhus MIT © Brenton House