Beta 7 with some repo names changed.
This commit is contained in:
1 parent
0f7b40cca7
commit
963c19493a
3408 files changed
+462217
-15516
No files matched your search
+27
@@ -0,0 +1,27 @@
|
||||
var stream = require('stream')
|
||||
|
||||
|
||||
function isStream (obj) {
|
||||
return obj instanceof stream.Stream
|
||||
}
|
||||
|
||||
|
||||
function isReadable (obj) {
|
||||
return isStream(obj) && typeof obj._read == 'function' && typeof obj._readableState == 'object'
|
||||
}
|
||||
|
||||
|
||||
function isWritable (obj) {
|
||||
return isStream(obj) && typeof obj._write == 'function' && typeof obj._writableState == 'object'
|
||||
}
|
||||
|
||||
|
||||
function isDuplex (obj) {
|
||||
return isReadable(obj) && isWritable(obj)
|
||||
}
|
||||
|
||||
|
||||
module.exports = isStream
|
||||
module.exports.isReadable = isReadable
|
||||
module.exports.isWritable = isWritable
|
||||
module.exports.isDuplex = isDuplex
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"name": "isstream",
|
||||
"version": "0.1.2",
|
||||
"description": "Determine if an object is a Stream",
|
||||
"main": "isstream.js",
|
||||
"scripts": {
|
||||
"test": "tar --xform 's/^package/readable-stream-1.0/' -zxf readable-stream-1.0.*.tgz && tar --xform 's/^package/readable-stream-1.1/' -zxf readable-stream-1.1.*.tgz && node test.js; rm -rf readable-stream-1.?/"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/rvagg/isstream.git"
|
||||
},
|
||||
"keywords": [
|
||||
"stream",
|
||||
"type",
|
||||
"streams",
|
||||
"readable-stream",
|
||||
"hippo"
|
||||
],
|
||||
"devDependencies": {
|
||||
"tape": "~2.12.3",
|
||||
"core-util-is": "~1.0.0",
|
||||
"isarray": "0.0.1",
|
||||
"string_decoder": "~0.10.x",
|
||||
"inherits": "~2.0.1"
|
||||
},
|
||||
"author": "Rod Vagg <rod@vagg.org>",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/rvagg/isstream/issues"
|
||||
},
|
||||
"homepage": "https://github.com/rvagg/isstream"
|
||||
|
||||
,"_resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
|
||||
,"_integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
|
||||
,"_from": "isstream@~0.1.2"
|
||||
}
|
||||
+168
@@ -0,0 +1,168 @@
|
||||
var tape = require('tape')
|
||||
, EE = require('events').EventEmitter
|
||||
, util = require('util')
|
||||
|
||||
|
||||
, isStream = require('./')
|
||||
, isReadable = require('./').isReadable
|
||||
, isWritable = require('./').isWritable
|
||||
, isDuplex = require('./').isDuplex
|
||||
|
||||
, CoreStreams = require('stream')
|
||||
, ReadableStream10 = require('./readable-stream-1.0/')
|
||||
, ReadableStream11 = require('./readable-stream-1.1/')
|
||||
|
||||
|
||||
function test (pass, type, stream) {
|
||||
tape('isStream(' + type + ')', function (t) {
|
||||
t.plan(1)
|
||||
t.ok(pass === isStream(stream), type)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function testReadable (pass, type, stream) {
|
||||
tape('isReadable(' + type + ')', function (t) {
|
||||
t.plan(1)
|
||||
t.ok(pass === isReadable(stream), type)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function testWritable (pass, type, stream) {
|
||||
tape('isWritable(' + type + ')', function (t) {
|
||||
t.plan(1)
|
||||
t.ok(pass === isWritable(stream), type)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function testDuplex (pass, type, stream) {
|
||||
tape('isDuplex(' + type + ')', function (t) {
|
||||
t.plan(1)
|
||||
t.ok(pass === isDuplex(stream), type)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
[ undefined, null, '', true, false, 0, 1, 1.0, 'string', {}, function foo () {} ].forEach(function (o) {
|
||||
test(false, 'non-stream / primitive: ' + (JSON.stringify(o) || (o && o.toString()) || o), o)
|
||||
})
|
||||
|
||||
|
||||
test(false, 'fake stream obj', { pipe: function () {} })
|
||||
|
||||
|
||||
;(function () {
|
||||
|
||||
// looks like a stream!
|
||||
|
||||
function Stream () {
|
||||
EE.call(this)
|
||||
}
|
||||
util.inherits(Stream, EE)
|
||||
Stream.prototype.pipe = function () {}
|
||||
Stream.Stream = Stream
|
||||
|
||||
test(false, 'fake stream "new Stream()"', new Stream())
|
||||
|
||||
}())
|
||||
|
||||
|
||||
test(true, 'CoreStreams.Stream', new (CoreStreams.Stream)())
|
||||
test(true, 'CoreStreams.Readable', new (CoreStreams.Readable)())
|
||||
test(true, 'CoreStreams.Writable', new (CoreStreams.Writable)())
|
||||
test(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
|
||||
test(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
|
||||
test(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
|
||||
|
||||
test(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
|
||||
test(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
|
||||
test(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
|
||||
test(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
|
||||
test(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
|
||||
|
||||
test(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
|
||||
test(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
|
||||
test(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
|
||||
test(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
|
||||
test(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
|
||||
|
||||
|
||||
testReadable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
|
||||
testReadable(true, 'CoreStreams.Readable', new (CoreStreams.Readable)())
|
||||
testReadable(false, 'CoreStreams.Writable', new (CoreStreams.Writable)())
|
||||
testReadable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
|
||||
testReadable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
|
||||
testReadable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
|
||||
|
||||
testReadable(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
|
||||
testReadable(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
|
||||
testReadable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
|
||||
testReadable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
|
||||
testReadable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
|
||||
|
||||
testReadable(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
|
||||
testReadable(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
|
||||
testReadable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
|
||||
testReadable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
|
||||
testReadable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
|
||||
|
||||
|
||||
testWritable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
|
||||
testWritable(false, 'CoreStreams.Readable', new (CoreStreams.Readable)())
|
||||
testWritable(true, 'CoreStreams.Writable', new (CoreStreams.Writable)())
|
||||
testWritable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
|
||||
testWritable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
|
||||
testWritable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
|
||||
|
||||
testWritable(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
|
||||
testWritable(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
|
||||
testWritable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
|
||||
testWritable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
|
||||
testWritable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
|
||||
|
||||
testWritable(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
|
||||
testWritable(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
|
||||
testWritable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
|
||||
testWritable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
|
||||
testWritable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
|
||||
|
||||
|
||||
testDuplex(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
|
||||
testDuplex(false, 'CoreStreams.Readable', new (CoreStreams.Readable)())
|
||||
testDuplex(false, 'CoreStreams.Writable', new (CoreStreams.Writable)())
|
||||
testDuplex(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
|
||||
testDuplex(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
|
||||
testDuplex(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
|
||||
|
||||
testDuplex(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
|
||||
testDuplex(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
|
||||
testDuplex(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
|
||||
testDuplex(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
|
||||
testDuplex(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
|
||||
|
||||
testDuplex(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
|
||||
testDuplex(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
|
||||
testDuplex(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
|
||||
testDuplex(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
|
||||
testDuplex(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
|
||||
|
||||
|
||||
;[ CoreStreams, ReadableStream10, ReadableStream11 ].forEach(function (p) {
|
||||
[ 'Stream', 'Readable', 'Writable', 'Duplex', 'Transform', 'PassThrough' ].forEach(function (k) {
|
||||
if (!p[k])
|
||||
return
|
||||
|
||||
function SubStream () {
|
||||
p[k].call(this)
|
||||
}
|
||||
util.inherits(SubStream, p[k])
|
||||
|
||||
test(true, 'Stream subclass: ' + p.name + '.' + k, new SubStream())
|
||||
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user