mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-07-01 07:40:10 +00:00
Add types for progress-stream 2.0
This commit is contained in:
51
types/progress-stream/index.d.ts
vendored
Normal file
51
types/progress-stream/index.d.ts
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
// Type definitions for progress-stream 2.0
|
||||
// Project: https://github.com/freeall/progress-stream
|
||||
// Definitions by: Mick Dekkers <https://github.com/mickdekkers>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.1
|
||||
|
||||
/// <reference types="node" />
|
||||
|
||||
import stream = require("stream");
|
||||
export = progress_stream;
|
||||
|
||||
declare function progress_stream(
|
||||
options: progress_stream.Options,
|
||||
progressListener: progress_stream.ProgressListener,
|
||||
): progress_stream.ProgressStream;
|
||||
|
||||
declare function progress_stream(
|
||||
optionsOrProgressListener?:
|
||||
| progress_stream.Options
|
||||
| progress_stream.ProgressListener,
|
||||
): progress_stream.ProgressStream;
|
||||
|
||||
declare namespace progress_stream {
|
||||
interface Options {
|
||||
time?: number;
|
||||
speed?: number;
|
||||
length?: number;
|
||||
drain?: boolean;
|
||||
transferred?: number;
|
||||
}
|
||||
|
||||
type ProgressListener = (progress: Progress) => void;
|
||||
|
||||
type ProgressStream = stream.Transform & {
|
||||
on(event: "progress", listener: ProgressListener): ProgressStream;
|
||||
on(event: "length", listener: (length: number) => void): ProgressStream;
|
||||
setLength(length: number): void;
|
||||
progress(): Progress;
|
||||
};
|
||||
|
||||
interface Progress {
|
||||
percentage: number;
|
||||
transferred: number;
|
||||
length: number;
|
||||
remaining: number;
|
||||
eta: number;
|
||||
runtime: number;
|
||||
delta: number;
|
||||
speed: number;
|
||||
}
|
||||
}
|
||||
71
types/progress-stream/progress-stream-tests.ts
Normal file
71
types/progress-stream/progress-stream-tests.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
import progress = require("progress-stream");
|
||||
import stream = require("stream");
|
||||
|
||||
const options: progress.Options = {
|
||||
time: 100,
|
||||
speed: 100,
|
||||
length: 100,
|
||||
drain: true,
|
||||
transferred: 0,
|
||||
};
|
||||
|
||||
const progressListener = (progress: progress.Progress) => {
|
||||
// $ExpectType number
|
||||
progress.percentage;
|
||||
// $ExpectType number
|
||||
progress.transferred;
|
||||
// $ExpectType number
|
||||
progress.length;
|
||||
// $ExpectType number
|
||||
progress.remaining;
|
||||
// $ExpectType number
|
||||
progress.eta;
|
||||
// $ExpectType number
|
||||
progress.runtime;
|
||||
// $ExpectType number
|
||||
progress.delta;
|
||||
// $ExpectType number
|
||||
progress.speed;
|
||||
};
|
||||
|
||||
// $ExpectType ProgressStream
|
||||
const p = progress();
|
||||
|
||||
// $ExpectType ProgressStream
|
||||
progress(options);
|
||||
|
||||
// $ExpectType ProgressStream
|
||||
progress(options, progressListener);
|
||||
|
||||
// $ExpectType ProgressStream
|
||||
progress(progressListener);
|
||||
|
||||
// $ExpectType ProgressStream
|
||||
p.on("progress", progressListener);
|
||||
|
||||
// $ExpectType ProgressStream
|
||||
p.on("length", (length: number) => {});
|
||||
|
||||
p.setLength(200); // $ExpectType void
|
||||
|
||||
p.progress(); // $ExpectType Progress
|
||||
|
||||
// Check if ProgressStream extends stream.Transform correctly
|
||||
|
||||
// $ExpectType ProgressStream
|
||||
p.on("close", () => {});
|
||||
// $ExpectType ProgressStream
|
||||
p.on("data", (chunk: any) => {});
|
||||
// $ExpectType ProgressStream
|
||||
p.on("end", () => {});
|
||||
// $ExpectType ProgressStream
|
||||
p.on("error", (err: Error) => {});
|
||||
// $ExpectType ProgressStream
|
||||
p.on("readable", () => {});
|
||||
// $ExpectType ProgressStream
|
||||
p.pause();
|
||||
|
||||
const writable = new stream.Writable();
|
||||
|
||||
// $ExpectType Writable
|
||||
p.pipe(writable);
|
||||
16
types/progress-stream/tsconfig.json
Normal file
16
types/progress-stream/tsconfig.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": ["es6"],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": ["../"],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strictFunctionTypes": true
|
||||
},
|
||||
"files": ["index.d.ts", "progress-stream-tests.ts"]
|
||||
}
|
||||
1
types/progress-stream/tslint.json
Normal file
1
types/progress-stream/tslint.json
Normal file
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user