ora
Elegant terminal spinner
Install
$ npm install --save ora
Show your support for Ora by buying this excellent Node.js course.
Usage
const ora = require('ora');
const spinner = ora('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.
ora([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.
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
Force enable/disable the spinner. If not specified, the spinner will be enabled if the stream
is being run inside a TTY context (not spawned or piped) and/or not in a CI environment.
Instance
.start([text])
Start the spinner. Returns the instance. Set the current text if text
is provided.
.stop()
Stop and clear the spinner. Returns the instance.
.succeed([text])
Stop the spinner, change it to a green ✔
and persist the current text, or text
if provided. Returns the instance. See the GIF below.
.fail([text])
Stop the spinner, change it to a red ✖
and persist the current text, or text
if provided. Returns the instance. See the GIF below.
.warn([text])
Stop the spinner, change it to a yellow ⚠
and persist the current text, or text
if provided. Returns the instance.
.info([text])
Stop the spinner, change it to a blue ℹ
and persist the current text, or text
if provided. Returns the instance.
.stopAndPersist([options])
Stop the spinner and change the symbol or text. Returns the instance. See the GIF below.
options
Type: Object
symbol
Type: string
Default: ' '
Symbol to replace the spinner with.
text
Type: string
Default: Current text
Text to be persisted.
.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.
ora.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
Related
- cli-spinners - Spinners for use in the terminal
- listr - Terminal task list
- CLISpinner - Terminal spinner library for Swift
- halo - Python port
- spinners - Terminal spinners for Rust
License
MIT