mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-05-18 04:24:30 +08:00
combined-stream
This commit is contained in:
30
combined-stream/combined-stream-tests.ts
Normal file
30
combined-stream/combined-stream-tests.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import * as CombinedStream from "combined-stream";
|
||||
import { createReadStream, createWriteStream } from "fs";
|
||||
|
||||
const stream1 = new CombinedStream();
|
||||
|
||||
stream1.append(createReadStream("tsconfig.json"));
|
||||
stream1.append(createReadStream("tslint.json"));
|
||||
stream1.append(createReadStream("index.d.ts"));
|
||||
|
||||
stream1.pipe(createWriteStream("combined.txt"));
|
||||
|
||||
const stream2 = CombinedStream.create({
|
||||
maxDataSize: 1 << 32,
|
||||
pauseStreams: false,
|
||||
});
|
||||
|
||||
stream1.destroy();
|
||||
|
||||
// should log true
|
||||
console.log(CombinedStream.isStreamLike(stream2));
|
||||
|
||||
stream2.on("data", (data) => {
|
||||
console.log(data);
|
||||
});
|
||||
|
||||
stream2.pipe(createWriteStream("combined.txt"));
|
||||
|
||||
stream2.write(CombinedStream.name);
|
||||
|
||||
stream2.destroy();
|
||||
56
combined-stream/index.d.ts
vendored
Normal file
56
combined-stream/index.d.ts
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
// Type definitions for combined-stream 1.0
|
||||
// Project: https://github.com/felixge/node-combined-stream
|
||||
// Definitions by: Felix Geisendörfer <https://github.com/felixge>, Tomek Łaziuk <https://github.com/tlaziuk>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/// <reference types="node" />
|
||||
|
||||
import { Stream } from "stream";
|
||||
|
||||
declare class CombinedStream extends Stream implements CombinedStream.Options {
|
||||
readonly writable: boolean;
|
||||
readonly readable: boolean;
|
||||
readonly dataSize: number;
|
||||
maxDataSize: number;
|
||||
pauseStreams: boolean;
|
||||
append(stream: NodeJS.ReadableStream | NodeJS.WritableStream | Buffer | string): this;
|
||||
write(data: any): void;
|
||||
pause(): void;
|
||||
resume(): void;
|
||||
end(): void;
|
||||
destroy(): void;
|
||||
|
||||
// private properties
|
||||
_released: boolean;
|
||||
// @TODO it should be a type of Array<'delayed-stream' instance | Buffer | string>
|
||||
_streams: Array<Stream | Buffer | string>;
|
||||
_currentStream: Stream | Buffer | string | null;
|
||||
_getNext(): void;
|
||||
_pipeNext(): void;
|
||||
_handleErrors(stream: NodeJS.EventEmitter): void;
|
||||
_reset(): void;
|
||||
_checkDataSize(): void;
|
||||
_updateDataSize(): void;
|
||||
_emitError(error: Error): void;
|
||||
|
||||
// events
|
||||
on(event: "close" | "end" | "resume" | "pause", cb: () => void): this;
|
||||
on(event: "error", cb: (err: Error) => void): this;
|
||||
on(event: "data", cb: (data: any) => void): this;
|
||||
once(event: "close" | "end" | "resume" | "pause", cb: () => void): this;
|
||||
once(event: "error", cb: (err: Error) => void): this;
|
||||
once(event: "data", cb: (data: any) => void): this;
|
||||
}
|
||||
|
||||
declare namespace CombinedStream {
|
||||
export interface Options {
|
||||
maxDataSize?: number;
|
||||
pauseStreams?: boolean;
|
||||
}
|
||||
|
||||
export function create(options?: Options): CombinedStream;
|
||||
|
||||
export function isStreamLike(stream: any): stream is Stream;
|
||||
}
|
||||
|
||||
export = CombinedStream;
|
||||
20
combined-stream/tsconfig.json
Normal file
20
combined-stream/tsconfig.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"target": "es6",
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"combined-stream-tests.ts"
|
||||
]
|
||||
}
|
||||
1
combined-stream/tslint.json
Normal file
1
combined-stream/tslint.json
Normal file
@@ -0,0 +1 @@
|
||||
{ "extends": "../tslint.json" }
|
||||
Reference in New Issue
Block a user