ora

  • Version 8.0.1
  • Published
  • 26.8 kB
  • 9 dependencies
  • MIT license

Install

npm i ora
yarn add ora
pnpm add ora

Overview

Elegant terminal spinner

Index

Functions

function ora

ora: (options?: string | Options) => Ora;
  • Elegant terminal spinner.

    Parameter options

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

    Example 1

    import ora from 'ora';
    const spinner = ora('Loading unicorns').start();
    setTimeout(() => {
    spinner.color = 'yellow';
    spinner.text = 'Loading rainbows';
    }, 1000);

function oraPromise

oraPromise: <T>(
action: PromiseLike<T> | ((spinner: Ora) => PromiseLike<T>),
options?: string | PromiseOptions<T>
) => Promise<T>;
  • Starts a spinner for a promise or promise-returning function. The spinner is stopped with .succeed() if the promise fulfills or with .fail() if it rejects.

    Parameter action

    The promise to start the spinner for or a promise-returning function.

    Parameter options

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

    Returns

    The given promise.

    Example 1

    import {oraPromise} from 'ora';
    await oraPromise(somePromise);

Interfaces

interface Ora

interface Ora {}

    property color

    color: Color;
    • Change the spinner color.

    property indent

    indent: number;
    • Change the spinner indent.

    property prefixText

    prefixText: string;
    • Change the text or function that returns text before the spinner.

      No prefix text will be displayed if set to an empty string.

    property suffixText

    suffixText: string;
    • Change the text or function that returns text after the spinner text.

      No suffix text will be displayed if set to an empty string.

    property text

    text: string;
    • Change the text after the spinner.

    method clear

    clear: () => this;
    • Clear the spinner.

      Returns

      The spinner instance.

    method fail

    fail: (text?: string) => this;
    • Stop the spinner, change it to a red and persist the current text, or text if provided.

      Parameter text

      Will persist text if provided.

      Returns

      The spinner instance.

    method frame

    frame: () => string;
    • Get a new frame.

      Returns

      The spinner instance text.

    method info

    info: (text?: string) => this;
    • Stop the spinner, change it to a blue and persist the current text, or text if provided.

      Parameter text

      Will persist text if provided.

      Returns

      The spinner instance.

    method render

    render: () => this;
    • Manually render a new frame.

      Returns

      The spinner instance.

    method start

    start: (text?: string) => this;
    • Start the spinner.

      Parameter text

      Set the current text.

      Returns

      The spinner instance.

    method stop

    stop: () => this;
    • Stop and clear the spinner.

      Returns

      The spinner instance.

    method stopAndPersist

    stopAndPersist: (options?: PersistOptions) => this;
    • Stop the spinner and change the symbol or text.

      Returns

      The spinner instance.

    method succeed

    succeed: (text?: string) => this;
    • Stop the spinner, change it to a green and persist the current text, or text if provided.

      Parameter text

      Will persist text if provided.

      Returns

      The spinner instance.

    method warn

    warn: (text?: string) => this;
    • Stop the spinner, change it to a yellow and persist the current text, or text if provided.

      Parameter text

      Will persist text if provided.

      Returns

      The spinner instance.

    index signature

    get spinner(): Spinner;
    • Get the spinner.

    index signature

    set spinner(spinner: SpinnerName | Spinner);
    • Set the spinner.

    index signature

    get isSpinning(): boolean;
    • A boolean of whether the instance is currently spinning.

    index signature

    get interval(): number;
    • The interval between each frame.

      The interval is decided by the chosen spinner.

    Type Aliases

    type Color

    type Color =
    | 'black'
    | 'red'
    | 'green'
    | 'yellow'
    | 'blue'
    | 'magenta'
    | 'cyan'
    | 'white'
    | 'gray';

      type Options

      type Options = {
      /**
      Text to display after the spinner.
      */
      readonly text?: string;
      /**
      Text or a function that returns text to display before the spinner. No prefix text will be displayed if set to an empty string.
      */
      readonly prefixText?: string | PrefixTextGenerator;
      /**
      Text or a function that returns text to display after the spinner text. No suffix text will be displayed if set to an empty string.
      */
      readonly suffixText?: string | SuffixTextGenerator;
      /**
      Name of one of the provided spinners. See [`example.js`](https://github.com/BendingBender/ora/blob/main/example.js) in this repo if you want to test out different spinners. On Windows, it will always use the line spinner as the Windows command-line doesn't have proper Unicode support.
      @default 'dots'
      Or an object like:
      @example
      ```
      {
      interval: 80, // Optional
      frames: ['-', '+', '-']
      }
      ```
      */
      readonly spinner?: SpinnerName | Spinner;
      /**
      The color of the spinner.
      @default 'cyan'
      */
      readonly color?: Color;
      /**
      Set to `false` to stop Ora from hiding the cursor.
      @default true
      */
      readonly hideCursor?: boolean;
      /**
      Indent the spinner with the given number of spaces.
      @default 0
      */
      readonly indent?: number;
      /**
      Interval between each frame.
      Spinners provide their own recommended interval, so you don't really need to specify this.
      Default: Provided by the spinner or `100`.
      */
      readonly interval?: number;
      /**
      Stream to write the output.
      You could for example set this to `process.stdout` instead.
      @default process.stderr
      */
      readonly stream?: NodeJS.WritableStream;
      /**
      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.
      Note that `{isEnabled: false}` doesn't mean it won't output anything. It just means it won't output the spinner, colors, and other ansi escape codes. It will still log text.
      */
      readonly isEnabled?: boolean;
      /**
      Disable the spinner and all log text. All output is suppressed and `isEnabled` will be considered `false`.
      @default false
      */
      readonly isSilent?: boolean;
      /**
      Discard stdin input (except Ctrl+C) while running if it's TTY. This prevents the spinner from twitching on input, outputting broken lines on `Enter` key presses, and prevents buffering of input while the spinner is running.
      This has no effect on Windows as there's no good way to implement discarding stdin properly there.
      @default true
      */
      readonly discardStdin?: boolean;
      };

        type PersistOptions

        type PersistOptions = {
        /**
        Symbol to replace the spinner with.
        @default ' '
        */
        readonly symbol?: string;
        /**
        Text to be persisted after the symbol.
        Default: Current `text`.
        */
        readonly text?: string;
        /**
        Text or a function that returns text to be persisted before the symbol. No prefix text will be displayed if set to an empty string.
        Default: Current `prefixText`.
        */
        readonly prefixText?: string | PrefixTextGenerator;
        /**
        Text or a function that returns text to be persisted after the text after the symbol. No suffix text will be displayed if set to an empty string.
        Default: Current `suffixText`.
        */
        readonly suffixText?: string | SuffixTextGenerator;
        };

          type PrefixTextGenerator

          type PrefixTextGenerator = () => string;

            type PromiseOptions

            type PromiseOptions<T> = {
            /**
            The new text of the spinner when the promise is resolved.
            Keeps the existing text if `undefined`.
            */
            successText?: string | ((result: T) => string) | undefined;
            /**
            The new text of the spinner when the promise is rejected.
            Keeps the existing text if `undefined`.
            */
            failText?: string | ((error: Error) => string) | undefined;
            } & Options;

              type Spinner

              type Spinner = {
              readonly interval?: number;
              readonly frames: string[];
              };

                type SuffixTextGenerator

                type SuffixTextGenerator = () => string;

                  Package Files (1)

                  Dependencies (9)

                  Dev Dependencies (6)

                  Peer Dependencies (0)

                  No peer dependencies.

                  Badge

                  To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

                  You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/ora.

                  • Markdown
                    [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/ora)
                  • HTML
                    <a href="https://www.jsdocs.io/package/ora"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>