Skip to content

Commit

Permalink
Fix #3, listen "close" event only for stream
Browse files Browse the repository at this point in the history
No longer listen "finish" or "end" event for writable or readable stream
  • Loading branch information
vilicvane committed Sep 26, 2016
1 parent aabde70 commit b10d73c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 10 deletions.
11 changes: 5 additions & 6 deletions src/awaitable.ts
Expand Up @@ -36,13 +36,12 @@ function getEventEmitterAwaitableOptions(emitter: EventEmitter): EventEmitterAwa
}
}
};
} else if (ReadableConstructor && emitter instanceof ReadableConstructor) {
return {
types: ['end', 'close']
};
} else if (WritableConstructor && emitter instanceof WritableConstructor) {
} else if (
ReadableConstructor && emitter instanceof ReadableConstructor ||
WritableConstructor && emitter instanceof WritableConstructor
) {
return {
types: ['finish', 'close']
types: ['close']
};
} else {
throw new Error('Missing event types');
Expand Down
8 changes: 4 additions & 4 deletions src/test/awaitable/awaitable-test.ts
Expand Up @@ -145,20 +145,20 @@ describe('Feature: awaitable', () => {
});

context('From `Stream`', () => {
it('Should fulfill on "end" event of readable stream', async () => {
it('Should fulfill on "close" event of readable stream', async () => {
let stream = new Readable();
let ret = awaitable(stream);

setImmediate(() => stream.emit('end'));
setImmediate(() => stream.emit('close'));

expect(await ret).to.be.undefined;
});

it('Should fulfill on "finish" event of writable stream', async () => {
it('Should fulfill on "close" event of writable stream', async () => {
let stream = new Writable();
let ret = awaitable(stream);

setImmediate(() => stream.emit('finish'));
setImmediate(() => stream.emit('close'));

expect(await ret).to.be.undefined;
});
Expand Down

0 comments on commit b10d73c

Please sign in to comment.