summaryrefslogtreecommitdiff
path: root/node_modules/ora/index.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/ora/index.d.ts')
-rw-r--r--node_modules/ora/index.d.ts308
1 files changed, 308 insertions, 0 deletions
diff --git a/node_modules/ora/index.d.ts b/node_modules/ora/index.d.ts
new file mode 100644
index 0000000..ff84da3
--- /dev/null
+++ b/node_modules/ora/index.d.ts
@@ -0,0 +1,308 @@
+import {SpinnerName} from 'cli-spinners';
+
+export interface Spinner {
+ readonly interval?: number;
+ readonly frames: string[];
+}
+
+export type Color =
+ | 'black'
+ | 'red'
+ | 'green'
+ | 'yellow'
+ | 'blue'
+ | 'magenta'
+ | 'cyan'
+ | 'white'
+ | 'gray';
+
+export type PrefixTextGenerator = () => string;
+
+export interface 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;
+
+ /**
+ 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;
+}
+
+export interface 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;
+}
+
+export interface PromiseOptions<T> extends Options {
+ /**
+ 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;
+}
+
+export interface Ora {
+ /**
+ Change the text after the spinner.
+ */
+ text: string;
+
+ /**
+ Change the text or function that returns text before the spinner.
+
+ No prefix text will be displayed if set to an empty string.
+ */
+ prefixText: string;
+
+ /**
+ Change the spinner color.
+ */
+ color: Color;
+
+ /**
+ Change the spinner indent.
+ */
+ indent: number;
+
+ /**
+ Get the spinner.
+ */
+ get spinner(): Spinner;
+
+ /**
+ Set the spinner.
+ */
+ set spinner(spinner: SpinnerName | Spinner);
+
+ /**
+ A boolean of whether the instance is currently spinning.
+ */
+ get isSpinning(): boolean;
+
+ /**
+ The interval between each frame.
+
+ The interval is decided by the chosen spinner.
+ */
+ get interval(): number;
+
+ /**
+ Start the spinner.
+
+ @param text - Set the current text.
+ @returns The spinner instance.
+ */
+ start(text?: string): this;
+
+ /**
+ Stop and clear the spinner.
+
+ @returns The spinner instance.
+ */
+ stop(): this;
+
+ /**
+ Stop the spinner, change it to a green `✔` and persist the current text, or `text` if provided.
+
+ @param text - Will persist text if provided.
+ @returns The spinner instance.
+ */
+ succeed(text?: string): this;
+
+ /**
+ Stop the spinner, change it to a red `✖` and persist the current text, or `text` if provided.
+
+ @param text - Will persist text if provided.
+ @returns The spinner instance.
+ */
+ fail(text?: string): this;
+
+ /**
+ Stop the spinner, change it to a yellow `⚠` and persist the current text, or `text` if provided.
+
+ @param text - Will persist text if provided.
+ @returns The spinner instance.
+ */
+ warn(text?: string): this;
+
+ /**
+ Stop the spinner, change it to a blue `ℹ` and persist the current text, or `text` if provided.
+
+ @param text - Will persist text if provided.
+ @returns The spinner instance.
+ */
+ info(text?: string): this;
+
+ /**
+ Stop the spinner and change the symbol or text.
+
+ @returns The spinner instance.
+ */
+ stopAndPersist(options?: PersistOptions): this;
+
+ /**
+ Clear the spinner.
+
+ @returns The spinner instance.
+ */
+ clear(): this;
+
+ /**
+ Manually render a new frame.
+
+ @returns The spinner instance.
+ */
+ render(): this;
+
+ /**
+ Get a new frame.
+
+ @returns The spinner instance text.
+ */
+ frame(): string;
+}
+
+/**
+Elegant terminal spinner.
+
+@param options - If a string is provided, it is treated as a shortcut for `options.text`.
+
+@example
+```
+import ora from 'ora';
+
+const spinner = ora('Loading unicorns').start();
+
+setTimeout(() => {
+ spinner.color = 'yellow';
+ spinner.text = 'Loading rainbows';
+}, 1000);
+```
+*/
+export default function ora(options?: string | Options): Ora;
+
+/**
+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.
+
+@param action - The promise to start the spinner for or a promise-returning function.
+@param options - If a string is provided, it is treated as a shortcut for `options.text`.
+@returns The given promise.
+
+@example
+```
+import {oraPromise} from 'ora';
+
+await oraPromise(somePromise);
+```
+*/
+export function oraPromise<T>(
+ action: PromiseLike<T> | ((spinner: Ora) => PromiseLike<T>),
+ options?: string | PromiseOptions<T>
+): Promise<T>;