mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-04 06:47:03 +00:00
[ora] Add types for v3 (#31624)
* [ora] move v1 types to sub-dir * [ora] Add types for v3
This commit is contained in:
Vendored
+265
-127
@@ -1,137 +1,275 @@
|
||||
// Type definitions for ora 1.3
|
||||
// Type definitions for ora 3.0
|
||||
// Project: https://github.com/sindresorhus/ora
|
||||
// Definitions by: Basarat Ali Syed <https://github.com/basarat>
|
||||
// Christian Rackerseder <https://github.com/screendriver>
|
||||
// BendingBender <https://github.com/BendingBender>
|
||||
// Aleh Zasypkin <https://github.com/azasypkin>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.1
|
||||
|
||||
/// <reference types="node" />
|
||||
|
||||
type SpinnerName =
|
||||
'dots'
|
||||
| 'dots2'
|
||||
| 'dots3'
|
||||
| 'dots4'
|
||||
| 'dots5'
|
||||
| 'dots6'
|
||||
| 'dots7'
|
||||
| 'dots8'
|
||||
| 'dots9'
|
||||
| 'dots10'
|
||||
| 'dots11'
|
||||
| 'dots12'
|
||||
| 'line'
|
||||
| 'line2'
|
||||
| 'pipe'
|
||||
| 'simpleDots'
|
||||
| 'simpleDotsScrolling'
|
||||
| 'star'
|
||||
| 'star2'
|
||||
| 'flip'
|
||||
| 'hamburger'
|
||||
| 'growVertical'
|
||||
| 'growHorizontal'
|
||||
| 'balloon'
|
||||
| 'balloon2'
|
||||
| 'noise'
|
||||
| 'bounce'
|
||||
| 'boxBounce'
|
||||
| 'boxBounce2'
|
||||
| 'triangle'
|
||||
| 'arc'
|
||||
| 'circle'
|
||||
| 'squareCorners'
|
||||
| 'circleQuarters'
|
||||
| 'circleHalves'
|
||||
| 'squish'
|
||||
| 'toggle'
|
||||
| 'toggle2'
|
||||
| 'toggle3'
|
||||
| 'toggle4'
|
||||
| 'toggle5'
|
||||
| 'toggle6'
|
||||
| 'toggle7'
|
||||
| 'toggle8'
|
||||
| 'toggle9'
|
||||
| 'toggle10'
|
||||
| 'toggle11'
|
||||
| 'toggle12'
|
||||
| 'toggle13'
|
||||
| 'arrow'
|
||||
| 'arrow2'
|
||||
| 'arrow3'
|
||||
| 'bouncingBar'
|
||||
| 'bouncingBall'
|
||||
| 'smiley'
|
||||
| 'monkey'
|
||||
| 'hearts'
|
||||
| 'clock'
|
||||
| 'earth'
|
||||
| 'moon'
|
||||
| 'runner'
|
||||
| 'pong'
|
||||
| 'shark'
|
||||
| 'dqpb';
|
||||
|
||||
type Color = 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray';
|
||||
|
||||
interface Options {
|
||||
text?: string;
|
||||
spinner?: SpinnerName | Spinner;
|
||||
color?: Color;
|
||||
interval?: number;
|
||||
stream?: NodeJS.WritableStream;
|
||||
enabled?: boolean;
|
||||
hideCursor?: boolean;
|
||||
}
|
||||
|
||||
interface PersistOptions {
|
||||
symbol?: string;
|
||||
text?: string;
|
||||
}
|
||||
|
||||
interface Spinner {
|
||||
interval?: number;
|
||||
frames: string[];
|
||||
}
|
||||
|
||||
declare class Ora {
|
||||
start(text?: string): Ora;
|
||||
|
||||
stop(): Ora;
|
||||
|
||||
succeed(text?: string): Ora;
|
||||
|
||||
fail(text?: string): Ora;
|
||||
|
||||
warn(text?: string): Ora;
|
||||
|
||||
info(text?: string): Ora;
|
||||
|
||||
stopAndPersist(options?: PersistOptions | string): Ora;
|
||||
|
||||
clear(): Ora;
|
||||
|
||||
render(): Ora;
|
||||
|
||||
frame(): Ora;
|
||||
|
||||
text: string;
|
||||
|
||||
color: Color;
|
||||
|
||||
frameIndex: number;
|
||||
}
|
||||
|
||||
interface oraFactory {
|
||||
(options?: Options | string): Ora;
|
||||
|
||||
new (options?: Options | string): Ora;
|
||||
|
||||
promise(action: PromiseLike<any>, options?: Options | string): Ora;
|
||||
}
|
||||
|
||||
declare const ora: oraFactory;
|
||||
|
||||
export = ora;
|
||||
|
||||
/**
|
||||
* Elegant terminal spinner.
|
||||
*
|
||||
* @param options If a string is provided, it is treated as a shortcut for `options.text`.
|
||||
*/
|
||||
declare function ora(options?: ora.Options | string): ora.Ora;
|
||||
|
||||
declare namespace ora {
|
||||
/**
|
||||
* Starts a spinner for a promise. The spinner is stopped with `.succeed()` if the promise fulfills
|
||||
* or with `.fail()` if it rejects.
|
||||
*
|
||||
* @param action
|
||||
* @param options If a string is provided, it is treated as a shortcut for `options.text`.
|
||||
* @returns The spinner instance.
|
||||
*/
|
||||
function promise(action: PromiseLike<any>, options?: Options | string): Ora;
|
||||
|
||||
interface Ora {
|
||||
/**
|
||||
* A boolean of whether the instance is currently spinning.
|
||||
*/
|
||||
readonly isSpinning: boolean;
|
||||
|
||||
/**
|
||||
* Change the text.
|
||||
*/
|
||||
text: string;
|
||||
|
||||
/**
|
||||
* Change the spinner color.
|
||||
*/
|
||||
color: Color;
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
* @param options
|
||||
* @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.
|
||||
*/
|
||||
frame(): Ora;
|
||||
}
|
||||
|
||||
interface Options {
|
||||
/**
|
||||
* Text to display after the spinner.
|
||||
*/
|
||||
text?: string;
|
||||
/**
|
||||
* Name of one of the provided spinners. See `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.
|
||||
*
|
||||
* Or an object like:
|
||||
*
|
||||
* @example
|
||||
* {
|
||||
* interval: 80, // optional
|
||||
* frames: ['-', '+', '-']
|
||||
* }
|
||||
*
|
||||
* @default 'dots'
|
||||
*/
|
||||
spinner?: SpinnerName | Spinner;
|
||||
/**
|
||||
* Color of the spinner.
|
||||
* @default 'cyan'
|
||||
*/
|
||||
color?: Color;
|
||||
/**
|
||||
* Set to `false` to stop Ora from hiding the cursor.
|
||||
* @default true
|
||||
*/
|
||||
hideCursor?: boolean;
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
interval?: number;
|
||||
/**
|
||||
* Stream to write the output.
|
||||
*
|
||||
* You could for example set this to `process.stdout` instead.
|
||||
* @default process.stderr
|
||||
*/
|
||||
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.
|
||||
*/
|
||||
isEnabled?: boolean;
|
||||
}
|
||||
|
||||
interface PersistOptions {
|
||||
/**
|
||||
* Symbol to replace the spinner with.
|
||||
* @default ' '
|
||||
*/
|
||||
symbol?: string;
|
||||
/**
|
||||
* Text to be persisted.
|
||||
* @default Current text
|
||||
*/
|
||||
text?: string;
|
||||
}
|
||||
|
||||
interface Spinner {
|
||||
interval?: number;
|
||||
frames: string[];
|
||||
}
|
||||
|
||||
type SpinnerName =
|
||||
| 'dots'
|
||||
| 'dots2'
|
||||
| 'dots3'
|
||||
| 'dots4'
|
||||
| 'dots5'
|
||||
| 'dots6'
|
||||
| 'dots7'
|
||||
| 'dots8'
|
||||
| 'dots9'
|
||||
| 'dots10'
|
||||
| 'dots11'
|
||||
| 'dots12'
|
||||
| 'line'
|
||||
| 'line2'
|
||||
| 'pipe'
|
||||
| 'simpleDots'
|
||||
| 'simpleDotsScrolling'
|
||||
| 'star'
|
||||
| 'star2'
|
||||
| 'flip'
|
||||
| 'hamburger'
|
||||
| 'growVertical'
|
||||
| 'growHorizontal'
|
||||
| 'balloon'
|
||||
| 'balloon2'
|
||||
| 'noise'
|
||||
| 'bounce'
|
||||
| 'boxBounce'
|
||||
| 'boxBounce2'
|
||||
| 'triangle'
|
||||
| 'arc'
|
||||
| 'circle'
|
||||
| 'squareCorners'
|
||||
| 'circleQuarters'
|
||||
| 'circleHalves'
|
||||
| 'squish'
|
||||
| 'toggle'
|
||||
| 'toggle2'
|
||||
| 'toggle3'
|
||||
| 'toggle4'
|
||||
| 'toggle5'
|
||||
| 'toggle6'
|
||||
| 'toggle7'
|
||||
| 'toggle8'
|
||||
| 'toggle9'
|
||||
| 'toggle10'
|
||||
| 'toggle11'
|
||||
| 'toggle12'
|
||||
| 'toggle13'
|
||||
| 'arrow'
|
||||
| 'arrow2'
|
||||
| 'arrow3'
|
||||
| 'bouncingBar'
|
||||
| 'bouncingBall'
|
||||
| 'smiley'
|
||||
| 'monkey'
|
||||
| 'hearts'
|
||||
| 'clock'
|
||||
| 'earth'
|
||||
| 'moon'
|
||||
| 'runner'
|
||||
| 'pong'
|
||||
| 'shark'
|
||||
| 'dqpb'
|
||||
| 'weather'
|
||||
| 'christmas'
|
||||
| 'grenade'
|
||||
| 'point'
|
||||
| 'layer';
|
||||
|
||||
type Color =
|
||||
| 'black'
|
||||
| 'red'
|
||||
| 'green'
|
||||
| 'yellow'
|
||||
| 'blue'
|
||||
| 'magenta'
|
||||
| 'cyan'
|
||||
| 'white'
|
||||
| 'gray';
|
||||
}
|
||||
|
||||
+27
-30
@@ -1,49 +1,46 @@
|
||||
import { PassThrough } from 'stream';
|
||||
import Ora = require('ora');
|
||||
import ora = require('ora');
|
||||
|
||||
const spinner = Ora('Loading unicorns').start();
|
||||
const spinner = ora('Loading unicorns');
|
||||
ora({ text: 'Loading unicorns' });
|
||||
ora({ spinner: 'squish' });
|
||||
ora({ spinner: { frames: ['-', '+', '-'] } });
|
||||
ora({ spinner: { interval: 80, frames: ['-', '+', '-'] } });
|
||||
ora({ color: 'cyan' });
|
||||
ora({ color: 'foo' }); // $ExpectError
|
||||
ora({ hideCursor: true });
|
||||
ora({ interval: 80 });
|
||||
ora({ stream: new PassThrough() });
|
||||
ora({ isEnabled: true });
|
||||
|
||||
const spinnerNothing = Ora().start();
|
||||
|
||||
const spinnerNew = new Ora({
|
||||
text: 'Loading unicorns',
|
||||
spinner: 'squish'
|
||||
});
|
||||
|
||||
const spinnerNew2 = new Ora({
|
||||
stream: new PassThrough(),
|
||||
text: 'foo',
|
||||
color: 'cyan',
|
||||
enabled: true
|
||||
});
|
||||
spinner.color = 'yellow';
|
||||
spinner.text = 'Loading rainbows';
|
||||
spinner.isSpinning; // $ExpectType boolean
|
||||
spinner.isSpinning = true; // $ExpectError
|
||||
|
||||
spinner.start();
|
||||
spinner.start('Test text');
|
||||
|
||||
setTimeout(() => {
|
||||
spinner.color = 'yellow';
|
||||
spinner.text = 'Loading rainbows';
|
||||
}, 1000);
|
||||
|
||||
setTimeout(() => {
|
||||
spinner.succeed();
|
||||
}, 2000);
|
||||
|
||||
spinner.stop();
|
||||
spinner.succeed();
|
||||
spinner.succeed('fooed');
|
||||
spinner.fail();
|
||||
spinner.fail('failed to foo');
|
||||
spinner.warn();
|
||||
spinner.warn('warn foo');
|
||||
spinner.info();
|
||||
spinner.info('info foo');
|
||||
spinner.stopAndPersist();
|
||||
spinner.stopAndPersist('@');
|
||||
spinner.stopAndPersist({text: 'all done'});
|
||||
spinner.stopAndPersist({symbol: '@', text: 'all done'});
|
||||
spinner.stopAndPersist({ text: 'all done' });
|
||||
spinner.stopAndPersist({ symbol: '@', text: 'all done' });
|
||||
spinner.clear();
|
||||
spinner.render();
|
||||
spinner.frame();
|
||||
|
||||
const resolves = Promise.resolve(1);
|
||||
Ora.promise(resolves, {
|
||||
ora.promise(resolves, 'foo');
|
||||
ora.promise(resolves, {
|
||||
stream: new PassThrough(),
|
||||
text: 'foo',
|
||||
color: 'blue',
|
||||
enabled: true
|
||||
isEnabled: true,
|
||||
});
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": false,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
|
||||
Vendored
+137
@@ -0,0 +1,137 @@
|
||||
// Type definitions for ora 1.3
|
||||
// Project: https://github.com/sindresorhus/ora
|
||||
// Definitions by: Basarat Ali Syed <https://github.com/basarat>
|
||||
// Christian Rackerseder <https://github.com/screendriver>
|
||||
// BendingBender <https://github.com/BendingBender>
|
||||
// Aleh Zasypkin <https://github.com/azasypkin>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/// <reference types="node" />
|
||||
|
||||
type SpinnerName =
|
||||
'dots'
|
||||
| 'dots2'
|
||||
| 'dots3'
|
||||
| 'dots4'
|
||||
| 'dots5'
|
||||
| 'dots6'
|
||||
| 'dots7'
|
||||
| 'dots8'
|
||||
| 'dots9'
|
||||
| 'dots10'
|
||||
| 'dots11'
|
||||
| 'dots12'
|
||||
| 'line'
|
||||
| 'line2'
|
||||
| 'pipe'
|
||||
| 'simpleDots'
|
||||
| 'simpleDotsScrolling'
|
||||
| 'star'
|
||||
| 'star2'
|
||||
| 'flip'
|
||||
| 'hamburger'
|
||||
| 'growVertical'
|
||||
| 'growHorizontal'
|
||||
| 'balloon'
|
||||
| 'balloon2'
|
||||
| 'noise'
|
||||
| 'bounce'
|
||||
| 'boxBounce'
|
||||
| 'boxBounce2'
|
||||
| 'triangle'
|
||||
| 'arc'
|
||||
| 'circle'
|
||||
| 'squareCorners'
|
||||
| 'circleQuarters'
|
||||
| 'circleHalves'
|
||||
| 'squish'
|
||||
| 'toggle'
|
||||
| 'toggle2'
|
||||
| 'toggle3'
|
||||
| 'toggle4'
|
||||
| 'toggle5'
|
||||
| 'toggle6'
|
||||
| 'toggle7'
|
||||
| 'toggle8'
|
||||
| 'toggle9'
|
||||
| 'toggle10'
|
||||
| 'toggle11'
|
||||
| 'toggle12'
|
||||
| 'toggle13'
|
||||
| 'arrow'
|
||||
| 'arrow2'
|
||||
| 'arrow3'
|
||||
| 'bouncingBar'
|
||||
| 'bouncingBall'
|
||||
| 'smiley'
|
||||
| 'monkey'
|
||||
| 'hearts'
|
||||
| 'clock'
|
||||
| 'earth'
|
||||
| 'moon'
|
||||
| 'runner'
|
||||
| 'pong'
|
||||
| 'shark'
|
||||
| 'dqpb';
|
||||
|
||||
type Color = 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray';
|
||||
|
||||
interface Options {
|
||||
text?: string;
|
||||
spinner?: SpinnerName | Spinner;
|
||||
color?: Color;
|
||||
interval?: number;
|
||||
stream?: NodeJS.WritableStream;
|
||||
enabled?: boolean;
|
||||
hideCursor?: boolean;
|
||||
}
|
||||
|
||||
interface PersistOptions {
|
||||
symbol?: string;
|
||||
text?: string;
|
||||
}
|
||||
|
||||
interface Spinner {
|
||||
interval?: number;
|
||||
frames: string[];
|
||||
}
|
||||
|
||||
declare class Ora {
|
||||
start(text?: string): Ora;
|
||||
|
||||
stop(): Ora;
|
||||
|
||||
succeed(text?: string): Ora;
|
||||
|
||||
fail(text?: string): Ora;
|
||||
|
||||
warn(text?: string): Ora;
|
||||
|
||||
info(text?: string): Ora;
|
||||
|
||||
stopAndPersist(options?: PersistOptions | string): Ora;
|
||||
|
||||
clear(): Ora;
|
||||
|
||||
render(): Ora;
|
||||
|
||||
frame(): Ora;
|
||||
|
||||
text: string;
|
||||
|
||||
color: Color;
|
||||
|
||||
frameIndex: number;
|
||||
}
|
||||
|
||||
interface oraFactory {
|
||||
(options?: Options | string): Ora;
|
||||
|
||||
new (options?: Options | string): Ora;
|
||||
|
||||
promise(action: PromiseLike<any>, options?: Options | string): Ora;
|
||||
}
|
||||
|
||||
declare const ora: oraFactory;
|
||||
|
||||
export = ora;
|
||||
@@ -0,0 +1,49 @@
|
||||
import { PassThrough } from 'stream';
|
||||
import Ora = require('ora');
|
||||
|
||||
const spinner = Ora('Loading unicorns').start();
|
||||
|
||||
const spinnerNothing = Ora().start();
|
||||
|
||||
const spinnerNew = new Ora({
|
||||
text: 'Loading unicorns',
|
||||
spinner: 'squish'
|
||||
});
|
||||
|
||||
const spinnerNew2 = new Ora({
|
||||
stream: new PassThrough(),
|
||||
text: 'foo',
|
||||
color: 'cyan',
|
||||
enabled: true
|
||||
});
|
||||
|
||||
spinner.start();
|
||||
spinner.start('Test text');
|
||||
|
||||
setTimeout(() => {
|
||||
spinner.color = 'yellow';
|
||||
spinner.text = 'Loading rainbows';
|
||||
}, 1000);
|
||||
|
||||
setTimeout(() => {
|
||||
spinner.succeed();
|
||||
}, 2000);
|
||||
|
||||
spinner.succeed();
|
||||
spinner.succeed('fooed');
|
||||
spinner.fail();
|
||||
spinner.fail('failed to foo');
|
||||
spinner.warn();
|
||||
spinner.info();
|
||||
spinner.stopAndPersist();
|
||||
spinner.stopAndPersist('@');
|
||||
spinner.stopAndPersist({text: 'all done'});
|
||||
spinner.stopAndPersist({symbol: '@', text: 'all done'});
|
||||
|
||||
const resolves = Promise.resolve(1);
|
||||
Ora.promise(resolves, {
|
||||
stream: new PassThrough(),
|
||||
text: 'foo',
|
||||
color: 'blue',
|
||||
enabled: true
|
||||
});
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../../",
|
||||
"typeRoots": [
|
||||
"../../"
|
||||
],
|
||||
"paths": {
|
||||
"ora": [
|
||||
"ora/v1"
|
||||
]
|
||||
},
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"esModuleInterop": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"ora-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user