aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/minipass-sized/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/minipass-sized/index.js')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/minipass-sized/index.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/minipass-sized/index.js b/sandbox/testAppNevena/Front/node_modules/minipass-sized/index.js
new file mode 100644
index 00000000..a0c8acde
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/minipass-sized/index.js
@@ -0,0 +1,67 @@
+const Minipass = require('minipass')
+
+class SizeError extends Error {
+ constructor (found, expect) {
+ super(`Bad data size: expected ${expect} bytes, but got ${found}`)
+ this.expect = expect
+ this.found = found
+ this.code = 'EBADSIZE'
+ Error.captureStackTrace(this, this.constructor)
+ }
+ get name () {
+ return 'SizeError'
+ }
+}
+
+class MinipassSized extends Minipass {
+ constructor (options = {}) {
+ super(options)
+
+ if (options.objectMode)
+ throw new TypeError(`${
+ this.constructor.name
+ } streams only work with string and buffer data`)
+
+ this.found = 0
+ this.expect = options.size
+ if (typeof this.expect !== 'number' ||
+ this.expect > Number.MAX_SAFE_INTEGER ||
+ isNaN(this.expect) ||
+ this.expect < 0 ||
+ !isFinite(this.expect) ||
+ this.expect !== Math.floor(this.expect))
+ throw new Error('invalid expected size: ' + this.expect)
+ }
+
+ write (chunk, encoding, cb) {
+ const buffer = Buffer.isBuffer(chunk) ? chunk
+ : typeof chunk === 'string' ?
+ Buffer.from(chunk, typeof encoding === 'string' ? encoding : 'utf8')
+ : chunk
+
+ if (!Buffer.isBuffer(buffer)) {
+ this.emit('error', new TypeError(`${
+ this.constructor.name
+ } streams only work with string and buffer data`))
+ return false
+ }
+
+ this.found += buffer.length
+ if (this.found > this.expect)
+ this.emit('error', new SizeError(this.found, this.expect))
+
+ return super.write(chunk, encoding, cb)
+ }
+
+ emit (ev, ...data) {
+ if (ev === 'end') {
+ if (this.found !== this.expect)
+ this.emit('error', new SizeError(this.found, this.expect))
+ }
+ return super.emit(ev, ...data)
+ }
+}
+
+MinipassSized.SizeError = SizeError
+
+module.exports = MinipassSized