[merge-stream] Apply standard lint rules, fix common mistakes (#27286)

* Apply standard lint rules to merge-stream.

 * Format version number as MAJOR.MINOR, patch is not allowed.
 * Delete consecutive blank lines.
 * Cut down author list into multiple lines.
 * Replace author's website with their github page.
 * Remove I prefix from MergedStream interface.
 * Use Array<...> for complex array type.
 * Delete blank line at start of file.
 * Replace all uses of 'var' with 'let' or 'const'.
 * Combine overloads into one signature.

* Apply strict null checks to merge-stream.

* Use ReadonlyArray in preference to Array where appropriate.

merge() and add() do not modify the arrays passed to them,
so they can be typed as ReadonlyArray.

* Add self to authors list.
This commit is contained in:
Daniel Cassidy
2018-07-15 20:29:43 +01:00
committed by Ryan Cavanaugh
parent 02ddad0cbe
commit 270885d33a
4 changed files with 21 additions and 97 deletions

View File

@@ -1,16 +1,17 @@
// Type definitions for merge-stream v1.1.0
// Type definitions for merge-stream 1.1
// Project: https://github.com/grncdr/merge-stream
// Definitions by: Keita Kagurazaka <https://github.com/k-kagurazaka>, Tom X. Tobin <http://tomxtobin.com/>, Daniel Zazula <https://github.com/daniel-zazula>
// Definitions by: Keita Kagurazaka <https://github.com/k-kagurazaka>
// Tom X. Tobin <https://github.com/tomxtobin>
// Daniel Zazula <https://github.com/daniel-zazula>
// Daniel Cassidy <https://github.com/djcsdy>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="node"/>
interface IMergedStream extends NodeJS.ReadWriteStream {
add(source: NodeJS.ReadableStream): IMergedStream;
add(source: NodeJS.ReadableStream[]): IMergedStream;
interface MergedStream extends NodeJS.ReadWriteStream {
add(source: NodeJS.ReadableStream | ReadonlyArray<NodeJS.ReadableStream>): MergedStream;
isEmpty(): boolean;
}
declare function merge<T extends NodeJS.ReadableStream>(...streams: (T | T[])[]): IMergedStream;
declare function merge<T extends NodeJS.ReadableStream>(...streams: Array<T | ReadonlyArray<T>>): MergedStream;
export = merge;

View File

@@ -1,23 +1,22 @@
import stream = require("stream");
import Stream = stream.Readable;
import merge = require("merge-stream");
var stream1 = new Stream();
var stream2 = new Stream();
const stream1 = new Stream();
const stream2 = new Stream();
var merged = merge(stream1, stream2);
const merged = merge(stream1, stream2);
var stream3 = new Stream();
const stream3 = new Stream();
merged.add(stream3);
var stream4 = new Stream();
var stream5 = new Stream();
const stream4 = new Stream();
const stream5 = new Stream();
merged.add([stream4, stream5]);
merged.isEmpty();
var stream6 = new Stream();
var stream7 = new Stream();
var streamArray = [stream6, stream7];
var merged2 = merge(streamArray);
const stream6 = new Stream();
const stream7 = new Stream();
const streamArray = [stream6, stream7];
const merged2 = merge(streamArray);

View File

@@ -6,7 +6,7 @@
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": false,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
@@ -20,4 +20,4 @@
"index.d.ts",
"merge-stream-tests.ts"
]
}
}

View File

@@ -1,79 +1,3 @@
{
"extends": "dtslint/dt.json",
"rules": {
"adjacent-overload-signatures": false,
"array-type": false,
"arrow-return-shorthand": false,
"ban-types": false,
"callable-types": false,
"comment-format": false,
"dt-header": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
"interface-name": false,
"interface-over-type-literal": false,
"jsdoc-format": false,
"max-line-length": false,
"member-access": false,
"new-parens": false,
"no-any-union": false,
"no-boolean-literal-compare": false,
"no-conditional-assignment": false,
"no-consecutive-blank-lines": false,
"no-construct": false,
"no-declare-current-package": false,
"no-duplicate-imports": false,
"no-duplicate-variable": false,
"no-empty-interface": false,
"no-for-in-array": false,
"no-inferrable-types": false,
"no-internal-module": false,
"no-irregular-whitespace": false,
"no-mergeable-namespace": false,
"no-misused-new": false,
"no-namespace": false,
"no-object-literal-type-assertion": false,
"no-padding": false,
"no-redundant-jsdoc": false,
"no-redundant-jsdoc-2": false,
"no-redundant-undefined": false,
"no-reference-import": false,
"no-relative-import-in-test": false,
"no-self-import": false,
"no-single-declare-module": false,
"no-string-throw": false,
"no-unnecessary-callback-wrapper": false,
"no-unnecessary-class": false,
"no-unnecessary-generics": false,
"no-unnecessary-qualifier": false,
"no-unnecessary-type-assertion": false,
"no-useless-files": false,
"no-var-keyword": false,
"no-var-requires": false,
"no-void-expression": false,
"no-trailing-whitespace": false,
"object-literal-key-quotes": false,
"object-literal-shorthand": false,
"one-line": false,
"one-variable-per-declaration": false,
"only-arrow-functions": false,
"prefer-conditional-expression": false,
"prefer-const": false,
"prefer-declare-function": false,
"prefer-for-of": false,
"prefer-method-signature": false,
"prefer-template": false,
"radix": false,
"semicolon": false,
"space-before-function-paren": false,
"space-within-parens": false,
"strict-export-declare-modifiers": false,
"trim-file": false,
"triple-equals": false,
"typedef-whitespace": false,
"unified-signatures": false,
"void-return": false,
"whitespace": false
}
"extends": "dtslint/dt.json"
}