diff options
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/minipass-flush/index.js')
-rw-r--r-- | sandbox/testAppNevena/Front/node_modules/minipass-flush/index.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/minipass-flush/index.js b/sandbox/testAppNevena/Front/node_modules/minipass-flush/index.js new file mode 100644 index 00000000..cb2537fa --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/minipass-flush/index.js @@ -0,0 +1,39 @@ +const Minipass = require('minipass') +const _flush = Symbol('_flush') +const _flushed = Symbol('_flushed') +const _flushing = Symbol('_flushing') +class Flush extends Minipass { + constructor (opt = {}) { + if (typeof opt === 'function') + opt = { flush: opt } + + super(opt) + + // or extend this class and provide a 'flush' method in your subclass + if (typeof opt.flush !== 'function' && typeof this.flush !== 'function') + throw new TypeError('must provide flush function in options') + + this[_flush] = opt.flush || this.flush + } + + emit (ev, ...data) { + if ((ev !== 'end' && ev !== 'finish') || this[_flushed]) + return super.emit(ev, ...data) + + if (this[_flushing]) + return + + this[_flushing] = true + + const afterFlush = er => { + this[_flushed] = true + er ? super.emit('error', er) : super.emit('end') + } + + const ret = this[_flush](afterFlush) + if (ret && ret.then) + ret.then(() => afterFlush(), er => afterFlush(er)) + } +} + +module.exports = Flush |