diff options
author | Minteck <contact@minteck.org> | 2022-02-12 10:33:06 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-02-12 10:33:06 +0100 |
commit | 01160246e4a0c0052181c72a53737e356ea7d02d (patch) | |
tree | c6f8ea675f9147d4c06ef503697fb35d58493991 /node_modules/ora/index.d.ts | |
parent | af898a152a14e31bdbcbbedb952ad333697553ef (diff) | |
download | twilight-01160246e4a0c0052181c72a53737e356ea7d02d.tar.gz twilight-01160246e4a0c0052181c72a53737e356ea7d02d.tar.bz2 twilight-01160246e4a0c0052181c72a53737e356ea7d02d.zip |
First commit
Diffstat (limited to 'node_modules/ora/index.d.ts')
-rw-r--r-- | node_modules/ora/index.d.ts | 294 |
1 files changed, 294 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..b35bba4 --- /dev/null +++ b/node_modules/ora/index.d.ts @@ -0,0 +1,294 @@ +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; + + /** + 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 { + /** + A boolean of whether the instance is currently spinning. + */ + readonly isSpinning: boolean; + + /** + 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 | PrefixTextGenerator; + + /** + Change the spinner color. + */ + color: Color; + + /** + Change the spinner. + */ + spinner: SpinnerName | Spinner; + + /** + Change the spinner indent. + */ + indent: number; + + /** + Start the spinner. + + @param text - Set the current text. + @returns The spinner instance. + */ + start(text?: string): Ora; + + /** + Stop and clear the spinner. + + @returns The spinner instance. + */ + stop(): Ora; + + /** + 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): Ora; + + /** + 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): Ora; + + /** + 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): Ora; + + /** + 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): Ora; + + /** + Stop the spinner and change the symbol or text. + + @returns The spinner instance. + */ + stopAndPersist(options?: PersistOptions): Ora; + + /** + Clear the spinner. + + @returns The spinner instance. + */ + clear(): Ora; + + /** + Manually render a new frame. + + @returns The spinner instance. + */ + render(): Ora; + + /** + 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>; |