Skip to content

Commit 32c167d

Browse files
angelo-vmcollina
authored andcommitted
add missing exports for browsers (#409)
* add missing exports for browsers * test-stream-finished in browser * test-stream-pipeline in browser
1 parent c7dee8c commit 32c167d

File tree

4 files changed

+176
-0
lines changed

4 files changed

+176
-0
lines changed

readable-browser.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ exports.Writable = require('./lib/_stream_writable.js');
55
exports.Duplex = require('./lib/_stream_duplex.js');
66
exports.Transform = require('./lib/_stream_transform.js');
77
exports.PassThrough = require('./lib/_stream_passthrough.js');
8+
exports.finished = require('./lib/internal/streams/end-of-stream.js');
9+
exports.pipeline = require('./lib/internal/streams/pipeline.js');

test/browser.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ test('streams', function (t) {
3333
require('./browser/test-stream-duplex')(t);
3434
require('./browser/test-stream-end-paused')(t);
3535
require('./browser/test-stream-ispaused')(t);
36+
require('./browser/test-stream-finished')(t);
37+
require('./browser/test-stream-pipeline')(t);
3638
require('./browser/test-stream-pipe-after-end')(t);
3739
require('./browser/test-stream-pipe-cleanup')(t);
3840
require('./browser/test-stream-pipe-cleanup-pause')(t);

test/browser/test-stream-finished.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
"use strict";
2+
3+
4+
var common = require('../common');
5+
6+
var _require = require('../../'),
7+
Writable = _require.Writable,
8+
Readable = _require.Readable,
9+
Transform = _require.Transform,
10+
finished = _require.finished;
11+
12+
module.exports = function (t) {
13+
t.test('readable finished', function (t) {
14+
15+
var rs = new Readable({
16+
read: function read() {}
17+
});
18+
finished(rs, common.mustCall(function (err) {
19+
t.ok(!err, 'no error');
20+
t.end();
21+
}));
22+
rs.push(null);
23+
rs.resume();
24+
});
25+
t.test('writable finished', function (t) {
26+
var ws = new Writable({
27+
write: function write(data, enc, cb) {
28+
cb();
29+
}
30+
});
31+
finished(ws, common.mustCall(function (err) {
32+
t.ok(!err, 'no error');
33+
t.end();
34+
}));
35+
ws.end();
36+
});
37+
t.test('transform finished', function (t) {
38+
var tr = new Transform({
39+
transform: function transform(data, enc, cb) {
40+
cb();
41+
}
42+
});
43+
var finish = false;
44+
var ended = false;
45+
tr.on('end', function () {
46+
ended = true;
47+
});
48+
tr.on('finish', function () {
49+
finish = true;
50+
});
51+
finished(tr, common.mustCall(function (err) {
52+
t.ok(!err, 'no error');
53+
t.ok(finish);
54+
t.ok(ended);
55+
t.end();
56+
}));
57+
tr.end();
58+
tr.resume();
59+
});
60+
};

test/browser/test-stream-pipeline.js

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
"use strict";
2+
3+
/*<replacement>*/
4+
var bufferShim = require('safe-buffer').Buffer;
5+
/*</replacement>*/
6+
7+
var common = require('../common');
8+
9+
var _require = require('../../'),
10+
Writable = _require.Writable,
11+
Readable = _require.Readable,
12+
Transform = _require.Transform,
13+
finished = _require.finished,
14+
pipeline = _require.pipeline;
15+
16+
module.exports = function (t) {
17+
t.test('pipeline', function (t) {
18+
var finished = false;
19+
var processed = [];
20+
var expected = [bufferShim.from('a'), bufferShim.from('b'),
21+
bufferShim.from('c')];
22+
var read = new Readable({
23+
read: function read() {
24+
}
25+
});
26+
var write = new Writable({
27+
write: function write(data, enc, cb) {
28+
processed.push(data);
29+
cb();
30+
}
31+
});
32+
write.on('finish', function () {
33+
finished = true;
34+
});
35+
36+
for (var i = 0; i < expected.length; i++) {
37+
read.push(expected[i]);
38+
}
39+
40+
read.push(null);
41+
pipeline(read, write, common.mustCall(function (err) {
42+
t.ok(!err, 'no error');
43+
t.ok(finished);
44+
t.deepEqual(processed, expected);
45+
t.end();
46+
}));
47+
});
48+
t.test('pipeline missing args', function (t) {
49+
var _read = new Readable({
50+
read: function read() {
51+
}
52+
});
53+
54+
t.throws(function () {
55+
pipeline(_read, function () {
56+
});
57+
}, /ERR_MISSING_ARGS/);
58+
t.throws(function () {
59+
pipeline(function () {
60+
});
61+
}, /ERR_MISSING_ARGS/);
62+
t.throws(function () {
63+
pipeline();
64+
}, /ERR_MISSING_ARGS/);
65+
t.end();
66+
});
67+
t.test('pipeline error', function (t) {
68+
var _read2 = new Readable({
69+
read: function read() {
70+
}
71+
});
72+
73+
var _write = new Writable({
74+
write: function write(data, enc, cb) {
75+
cb();
76+
}
77+
});
78+
79+
_read2.push('data');
80+
81+
setImmediate(function () {
82+
return _read2.destroy();
83+
});
84+
pipeline(_read2, _write, common.mustCall(function (err) {
85+
t.ok(err, 'should have an error');
86+
t.end();
87+
}));
88+
});
89+
t.test('pipeline destroy', function () {
90+
var _read3 = new Readable({
91+
read: function read() {
92+
}
93+
});
94+
95+
var _write2 = new Writable({
96+
write: function write(data, enc, cb) {
97+
cb();
98+
}
99+
});
100+
101+
_read3.push('data');
102+
103+
setImmediate(function () {
104+
return _read3.destroy(new Error('kaboom'));
105+
});
106+
var dst = pipeline(_read3, _write2, common.mustCall(function (err) {
107+
t.equal(err.message, 'kaboom');
108+
t.end();
109+
}));
110+
t.equal(dst, _write2);
111+
});
112+
};

0 commit comments

Comments
 (0)