Skip to content

Commit

Permalink
Use newListener event instead of overriding EventEmitter#on (#79)
Browse files Browse the repository at this point in the history
* Use `newListener` event instead of overriding `EventEmitter#on`

* No need for bind
  • Loading branch information
kasperisager committed Dec 8, 2023
1 parent ebd0a04 commit e41329b
Showing 1 changed file with 22 additions and 22 deletions.
44 changes: 22 additions & 22 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -570,6 +570,26 @@ function afterTransform (err, data) {
this._writableState.afterWrite(err)
}

function newListener (name) {
if (this._readableState !== null) {
if (name === 'data') {
this._duplexState |= (READ_EMIT_DATA | READ_RESUMED)
this._readableState.updateNextTick()
}
if (name === 'readable') {
this._duplexState |= READ_EMIT_READABLE
this._readableState.updateNextTick()
}
}

if (this._writableState !== null) {
if (name === 'drain') {
this._duplexState |= WRITE_EMIT_DRAIN
this._writableState.updateNextTick()
}
}
}

class Stream extends EventEmitter {
constructor (opts) {
super()
Expand All @@ -586,6 +606,8 @@ class Stream extends EventEmitter {
opts.signal.addEventListener('abort', abort.bind(this))
}
}

this.on('newListener', newListener)
}

_open (cb) {
Expand Down Expand Up @@ -638,28 +660,6 @@ class Stream extends EventEmitter {
if (this._writableState !== null) this._writableState.updateNextTick()
}
}

on (name, fn) {
if (this._readableState !== null) {
if (name === 'data') {
this._duplexState |= (READ_EMIT_DATA | READ_RESUMED)
this._readableState.updateNextTick()
}
if (name === 'readable') {
this._duplexState |= READ_EMIT_READABLE
this._readableState.updateNextTick()
}
}

if (this._writableState !== null) {
if (name === 'drain') {
this._duplexState |= WRITE_EMIT_DRAIN
this._writableState.updateNextTick()
}
}

return super.on(name, fn)
}
}

class Readable extends Stream {
Expand Down

0 comments on commit e41329b

Please sign in to comment.