Socket
Socket
Sign inDemoInstall

minipass

Package Overview
Dependencies
Maintainers
1
Versions
94
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

minipass - npm Package Compare versions

Comparing version 1.2.0 to 2.0.0

eos.js

72

index.js

@@ -7,2 +7,3 @@ 'use strict'

const EMITTED_END = Symbol('emittedEnd')
const CLOSED = Symbol('closed')
const READ = Symbol('read')

@@ -29,59 +30,7 @@ const FLUSH = Symbol('flush')

this[EMITTED_END] = false
this[CLOSED] = false
this.writable = true
this.readable = true
}
get _readableState () {
const self = this
return {
objectMode: false,
highWaterMark: Number.MAX_SAFE_INTEGER,
buffer: self.buffer,
get length () {
return self.buffer.map(n => n.length).reduce((a,b) => a + b, 0)
},
get pipes () { return self.pipes.toArray() },
get pipesCount () { return self.pipes.length },
get flowing () { return self.flowing },
get ended () { return self[EOF] },
get endEmitted () { return self.emittedEnd },
reading: false,
sync: false,
needReadable: true,
readableListening: true,
resumeScheduled: true,
defaultEncoding: 'utf8',
get ranOut () { return self.buffer.length === 0 },
awaitDrain: 0,
readingMore: false,
get encoding () { return self.encoding }
}
}
get _writableState () {
const self = this
return {
objectMode: false,
highWaterMark: Number.MAX_SAFE_INTEGER,
needDrain: false,
get ending () { return self[EOF] },
get ended () { return self[EOF] },
get finished () { return self.emittedEnd },
decodeStrings: true,
defaultEncoding: 'utf8',
get length () {
return self.buffer.map(n => n.length).reduce((a,b) => a + b, 0)
},
writing: false,
corked: false,
sync: false,
bufferProcessing: false,
writelen: 0,
bufferedRequest: null,
lastBufferedRequest: null,
pendingcb: 0,
get prefinished () { return self[EOF] },
errorEmitted: false,
bufferedRequestCount: 0
}
}
get encoding () { return this[ENCODING] }

@@ -98,5 +47,2 @@ set encoding (enc) {

get writable () { return !this[EOF] }
get readable () { return !this[EMITTED_END] }
write (chunk, encoding, cb) {

@@ -163,2 +109,3 @@ if (this[EOF])

this[EOF] = true
this.writable = false
if (this.flowing)

@@ -232,3 +179,4 @@ this[MAYBE_EMIT_END]()

this.emit('finish')
this.emit('close')
if (this[CLOSED])
this.emit('close')
}

@@ -260,2 +208,8 @@ }

this[EMITTED_END] = true
this.readable = false
} else if (ev === 'close') {
this[CLOSED] = true
// don't emit close before 'end' and 'finish'
if (!this[EMITTED_END])
return
}

@@ -262,0 +216,0 @@

{
"name": "minipass",
"version": "1.2.0",
"version": "2.0.0",
"description": "minimal implementation of a PassThrough stream",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -258,5 +258,23 @@ const MiniPass = require('../')

t.test('fake baroque streams state objects', t => {
const mp = new MiniPass({ encoding: 'utf8' })
t.test('save close for end', t => {
const mp = new MiniPass()
let ended = false
mp.on('close', _ => {
t.equal(ended, true, 'end before close')
t.end()
})
mp.on('end', _ => {
t.equal(ended, false, 'only end once')
ended = true
})
mp.emit('close')
mp.end('foo')
t.equal(ended, false, 'no end until flushed')
mp.resume()
})
t.test('eos works', t => {
const eos = require('end-of-stream')
const mp = new MiniPass()

@@ -266,123 +284,8 @@ eos(mp, er => {

throw er
t.same(mp._readableState, {
objectMode: false,
highWaterMark: Number.MAX_SAFE_INTEGER,
buffer: mp.buffer,
length: 0,
pipes: [],
pipesCount: 0,
flowing: false,
ended: true,
endEmitted: true,
reading: false,
sync: false,
needReadable: true,
readableListening: true,
resumeScheduled: true,
defaultEncoding: 'utf8',
ranOut: true,
awaitDrain: 0,
readingMore: false,
encoding: 'utf8'
})
t.end()
})
t.same(mp._readableState, {
objectMode: false,
highWaterMark: Number.MAX_SAFE_INTEGER,
buffer: mp.buffer,
length: 0,
pipes: [],
pipesCount: 0,
flowing: false,
ended: false,
endEmitted: false,
reading: false,
sync: false,
needReadable: true,
readableListening: true,
resumeScheduled: true,
defaultEncoding: 'utf8',
ranOut: true,
awaitDrain: 0,
readingMore: false,
encoding: 'utf8'
})
t.same(mp._writableState, {
objectMode: false,
highWaterMark: Number.MAX_SAFE_INTEGER,
needDrain: false,
ending: false,
ended: false,
finished: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: false,
sync: false,
bufferProcessing: false,
writelen: 0,
bufferedRequest: null,
lastBufferedRequest: null,
pendingcb: 0,
prefinished: false,
errorEmitted: false,
bufferedRequestCount: 0
})
mp.write('hello')
t.same(mp._readableState, {
objectMode: false,
highWaterMark: Number.MAX_SAFE_INTEGER,
buffer: mp.buffer,
length: 5,
pipes: [],
pipesCount: 0,
flowing: false,
ended: false,
endEmitted: false,
reading: false,
sync: false,
needReadable: true,
readableListening: true,
resumeScheduled: true,
defaultEncoding: 'utf8',
ranOut: false,
awaitDrain: 0,
readingMore: false,
encoding: 'utf8'
})
mp.end()
t.same(mp._writableState, {
objectMode: false,
highWaterMark: Number.MAX_SAFE_INTEGER,
needDrain: false,
ending: true,
ended: true,
finished: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 5,
writing: false,
corked: false,
sync: false,
bufferProcessing: false,
writelen: 0,
bufferedRequest: null,
lastBufferedRequest: null,
pendingcb: 0,
prefinished: true,
errorEmitted: false,
bufferedRequestCount: 0
})
mp.read()
mp.emit('close')
mp.end('foo')
mp.resume()
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc