From 94e069c099bc9e2bedee30ce525f8e36b0c1b881 Mon Sep 17 00:00:00 2001 From: Jay Anslow Date: Tue, 2 Jan 2018 19:15:46 +0000 Subject: [PATCH] Add cli-spinner definitions (#22581) --- types/cli-spinner/cli-spinner-tests.ts | 27 ++++++++++++++++++++++++ types/cli-spinner/index.d.ts | 29 ++++++++++++++++++++++++++ types/cli-spinner/tsconfig.json | 23 ++++++++++++++++++++ types/cli-spinner/tslint.json | 1 + 4 files changed, 80 insertions(+) create mode 100644 types/cli-spinner/cli-spinner-tests.ts create mode 100644 types/cli-spinner/index.d.ts create mode 100644 types/cli-spinner/tsconfig.json create mode 100644 types/cli-spinner/tslint.json diff --git a/types/cli-spinner/cli-spinner-tests.ts b/types/cli-spinner/cli-spinner-tests.ts new file mode 100644 index 0000000000..a574a334fd --- /dev/null +++ b/types/cli-spinner/cli-spinner-tests.ts @@ -0,0 +1,27 @@ +import { Spinner } from 'cli-spinner'; + +let spinner: Spinner = new Spinner(); +spinner.setSpinnerString('|/-\\'); +spinner.start(); + +spinner = new Spinner('processing.. %s'); + +spinner = new Spinner({ + text: 'processing.. %s', + stream: process.stderr, + onTick(msg) { + this.clearLine(this.stream); + this.stream.write(msg); + }, +}); + +spinner = spinner.start(); +spinner = spinner.stop().stop(true).stop(false); +spinner = spinner.clearLine(process.stdout); +spinner = spinner.setSpinnerDelay(100); +spinner = spinner.setSpinnerString('My spinner string'); +spinner = spinner.setSpinnerTitle('My spinner title'); + +const isSpinning: boolean = spinner.isSpinning(); + +const Spinner2: typeof Spinner = Spinner.setDefaultSpinnerDelay(100).setDefaultSpinnerString('Other spinner string'); diff --git a/types/cli-spinner/index.d.ts b/types/cli-spinner/index.d.ts new file mode 100644 index 0000000000..dad05fb8ac --- /dev/null +++ b/types/cli-spinner/index.d.ts @@ -0,0 +1,29 @@ +// Type definitions for cli-spinner 0.2 +// Project: https://github.com/helloIAmPau/node-spinner +// Definitions by: Jay Anslow +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +export interface Options { + text?: string; + stream?: NodeJS.WritableStream; + onTick?(this: Spinner, msg: string): void; +} + +export class Spinner { + static setDefaultSpinnerString(spinnerString: string | number): typeof Spinner; + static setDefaultSpinnerDelay(spinnerDelay: number): typeof Spinner; + + readonly stream: NodeJS.WritableStream; + + constructor(titleOrOptions?: string | Options); + + start(): this; + stop(clear?: boolean): this; + isSpinning(): boolean; + clearLine(stream: NodeJS.WritableStream): this; + setSpinnerString(spinnerString: string | number): this; + setSpinnerTitle(title: string): this; + setSpinnerDelay(spinnerDelay: number): this; +} diff --git a/types/cli-spinner/tsconfig.json b/types/cli-spinner/tsconfig.json new file mode 100644 index 0000000000..61c966becc --- /dev/null +++ b/types/cli-spinner/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "cli-spinner-tests.ts" + ] +} diff --git a/types/cli-spinner/tslint.json b/types/cli-spinner/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/cli-spinner/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }