is-stream
Advanced tools
Comparing version 2.0.1 to 3.0.0
128
index.d.ts
@@ -1,79 +0,81 @@ | ||
import * as stream from 'stream'; | ||
import { | ||
Stream, | ||
Writable as WritableStream, | ||
Readable as ReadableStream, | ||
Duplex as DuplexStream, | ||
Transform as TransformStream, | ||
} from 'node:stream'; | ||
declare const isStream: { | ||
/** | ||
@returns Whether `stream` is a [`Stream`](https://nodejs.org/api/stream.html#stream_stream). | ||
/** | ||
@returns Whether `stream` is a [`Stream`](https://nodejs.org/api/stream.html#stream_stream). | ||
@example | ||
``` | ||
import * as fs from 'fs'; | ||
import isStream = require('is-stream'); | ||
@example | ||
``` | ||
import fs from 'node:fs'; | ||
import {isStream} from 'is-stream'; | ||
isStream(fs.createReadStream('unicorn.png')); | ||
//=> true | ||
isStream(fs.createReadStream('unicorn.png')); | ||
//=> true | ||
isStream({}); | ||
//=> false | ||
``` | ||
*/ | ||
(stream: unknown): stream is stream.Stream; | ||
isStream({}); | ||
//=> false | ||
``` | ||
*/ | ||
export function isStream(stream: unknown): stream is Stream; | ||
/** | ||
@returns Whether `stream` is a [`stream.Writable`](https://nodejs.org/api/stream.html#stream_class_stream_writable). | ||
/** | ||
@returns Whether `stream` is a [`stream.Writable`](https://nodejs.org/api/stream.html#stream_class_stream_writable). | ||
@example | ||
``` | ||
import * as fs from 'fs'; | ||
import isStream = require('is-stream'); | ||
@example | ||
``` | ||
import fs from 'node:fs'; | ||
import {isWritableStream} from 'is-stream'; | ||
isStream.writable(fs.createWriteStrem('unicorn.txt')); | ||
//=> true | ||
``` | ||
*/ | ||
writable(stream: unknown): stream is stream.Writable; | ||
isWritableStream(fs.createWriteStrem('unicorn.txt')); | ||
//=> true | ||
``` | ||
*/ | ||
export function isWritableStream(stream: unknown): stream is WritableStream; | ||
/** | ||
@returns Whether `stream` is a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_class_stream_readable). | ||
/** | ||
@returns Whether `stream` is a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_class_stream_readable). | ||
@example | ||
``` | ||
import * as fs from 'fs'; | ||
import isStream = require('is-stream'); | ||
@example | ||
``` | ||
import fs from 'node:fs'; | ||
import {isReadableStream} from 'is-stream'; | ||
isStream.readable(fs.createReadStream('unicorn.png')); | ||
//=> true | ||
``` | ||
*/ | ||
readable(stream: unknown): stream is stream.Readable; | ||
isReadableStream(fs.createReadStream('unicorn.png')); | ||
//=> true | ||
``` | ||
*/ | ||
export function isReadableStream(stream: unknown): stream is ReadableStream; | ||
/** | ||
@returns Whether `stream` is a [`stream.Duplex`](https://nodejs.org/api/stream.html#stream_class_stream_duplex). | ||
/** | ||
@returns Whether `stream` is a [`stream.Duplex`](https://nodejs.org/api/stream.html#stream_class_stream_duplex). | ||
@example | ||
``` | ||
import {Duplex} from 'stream'; | ||
import isStream = require('is-stream'); | ||
@example | ||
``` | ||
import {Duplex as DuplexStream} from 'node:stream'; | ||
import {isDuplexStream} from 'is-stream'; | ||
isStream.duplex(new Duplex()); | ||
//=> true | ||
``` | ||
*/ | ||
duplex(stream: unknown): stream is stream.Duplex; | ||
isDuplexStream(new DuplexStream()); | ||
//=> true | ||
``` | ||
*/ | ||
export function isDuplexStream(stream: unknown): stream is DuplexStream; | ||
/** | ||
@returns Whether `stream` is a [`stream.Transform`](https://nodejs.org/api/stream.html#stream_class_stream_transform). | ||
/** | ||
@returns Whether `stream` is a [`stream.Transform`](https://nodejs.org/api/stream.html#stream_class_stream_transform). | ||
@example | ||
``` | ||
import * as fs from 'fs'; | ||
import Stringify = require('streaming-json-stringify'); | ||
import isStream = require('is-stream'); | ||
@example | ||
``` | ||
import fs from 'node:fs'; | ||
import StringifyStream from 'streaming-json-stringify'; | ||
import {isTransformStream} from 'is-stream'; | ||
isStream.transform(Stringify()); | ||
//=> true | ||
``` | ||
*/ | ||
transform(input: unknown): input is stream.Transform; | ||
}; | ||
export = isStream; | ||
isTransformStream(StringifyStream()); | ||
//=> true | ||
``` | ||
*/ | ||
export function isTransformStream(stream: unknown): stream is TransformStream; |
49
index.js
@@ -1,28 +0,29 @@ | ||
'use strict'; | ||
export function isStream(stream) { | ||
return stream !== null | ||
&& typeof stream === 'object' | ||
&& typeof stream.pipe === 'function'; | ||
} | ||
const isStream = stream => | ||
stream !== null && | ||
typeof stream === 'object' && | ||
typeof stream.pipe === 'function'; | ||
export function isWritableStream(stream) { | ||
return isStream(stream) | ||
&& stream.writable !== false | ||
&& typeof stream._write === 'function' | ||
&& typeof stream._writableState === 'object'; | ||
} | ||
isStream.writable = stream => | ||
isStream(stream) && | ||
stream.writable !== false && | ||
typeof stream._write === 'function' && | ||
typeof stream._writableState === 'object'; | ||
export function isReadableStream(stream) { | ||
return isStream(stream) | ||
&& stream.readable !== false | ||
&& typeof stream._read === 'function' | ||
&& typeof stream._readableState === 'object'; | ||
} | ||
isStream.readable = stream => | ||
isStream(stream) && | ||
stream.readable !== false && | ||
typeof stream._read === 'function' && | ||
typeof stream._readableState === 'object'; | ||
export function isDuplexStream(stream) { | ||
return isWritableStream(stream) | ||
&& isReadableStream(stream); | ||
} | ||
isStream.duplex = stream => | ||
isStream.writable(stream) && | ||
isStream.readable(stream); | ||
isStream.transform = stream => | ||
isStream.duplex(stream) && | ||
typeof stream._transform === 'function'; | ||
module.exports = isStream; | ||
export function isTransformStream(stream) { | ||
return isDuplexStream(stream) | ||
&& typeof stream._transform === 'function'; | ||
} |
{ | ||
"name": "is-stream", | ||
"version": "2.0.1", | ||
"version": "3.0.0", | ||
"description": "Check if something is a Node.js stream", | ||
@@ -13,4 +13,6 @@ "license": "MIT", | ||
}, | ||
"type": "module", | ||
"exports": "./index.js", | ||
"engines": { | ||
"node": ">=8" | ||
"node": "^12.20.0 || ^14.13.1 || >=16.0.0" | ||
}, | ||
@@ -37,8 +39,8 @@ "scripts": { | ||
"devDependencies": { | ||
"@types/node": "^11.13.6", | ||
"ava": "^1.4.1", | ||
"tempy": "^0.3.0", | ||
"tsd": "^0.7.2", | ||
"xo": "^0.24.0" | ||
"@types/node": "^16.4.13", | ||
"ava": "^3.15.0", | ||
"tempy": "^1.0.1", | ||
"tsd": "^0.17.0", | ||
"xo": "^0.44.0" | ||
} | ||
} |
@@ -14,4 +14,4 @@ # is-stream | ||
```js | ||
const fs = require('fs'); | ||
const isStream = require('is-stream'); | ||
import fs from 'node:fs'; | ||
import {isStream} from 'is-stream'; | ||
@@ -31,15 +31,15 @@ isStream(fs.createReadStream('unicorn.png')); | ||
#### isStream.writable(stream) | ||
#### isWritableStream(stream) | ||
Returns a `boolean` for whether it's a [`stream.Writable`](https://nodejs.org/api/stream.html#stream_class_stream_writable). | ||
#### isStream.readable(stream) | ||
#### isReadableStream(stream) | ||
Returns a `boolean` for whether it's a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_class_stream_readable). | ||
#### isStream.duplex(stream) | ||
#### isDuplexStream(stream) | ||
Returns a `boolean` for whether it's a [`stream.Duplex`](https://nodejs.org/api/stream.html#stream_class_stream_duplex). | ||
#### isStream.transform(stream) | ||
#### isTransformStream(stream) | ||
@@ -46,0 +46,0 @@ Returns a `boolean` for whether it's a [`stream.Transform`](https://nodejs.org/api/stream.html#stream_class_stream_transform). |
6229
90
Yes