mirror of
https://github.com/arthur-pbty/portfolio2023.git
synced 2026-06-18 13:56:16 +02:00
modified
This commit is contained in:
-22
@@ -1,22 +0,0 @@
|
||||
# ignore most things, include some others
|
||||
/*
|
||||
/.*
|
||||
|
||||
!bin/
|
||||
!lib/
|
||||
!docs/
|
||||
!package.json
|
||||
!package-lock.json
|
||||
!README.md
|
||||
!CONTRIBUTING.md
|
||||
!LICENSE
|
||||
!CHANGELOG.md
|
||||
!example/
|
||||
!scripts/
|
||||
!tap-snapshots/
|
||||
!test/
|
||||
!.travis.yml
|
||||
!.gitignore
|
||||
!.gitattributes
|
||||
!coverage-map.js
|
||||
!index.js
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
-28
@@ -1,28 +0,0 @@
|
||||
# minipass-sized
|
||||
|
||||
A Minipass stream that raises an error if you get a different number of
|
||||
bytes than expected.
|
||||
|
||||
## USAGE
|
||||
|
||||
Use just like any old [minipass](http://npm.im/minipass) stream, but
|
||||
provide a `size` option to the constructor.
|
||||
|
||||
The `size` option must be a positive integer, smaller than
|
||||
`Number.MAX_SAFE_INTEGER`.
|
||||
|
||||
```js
|
||||
const MinipassSized = require('minipass-sized')
|
||||
// figure out how much data you expect to get
|
||||
const expectedSize = +headers['content-length']
|
||||
const stream = new MinipassSized({ size: expectedSize })
|
||||
stream.on('error', er => {
|
||||
// if it's the wrong size, then this will raise an error with
|
||||
// { found: <number>, expect: <number>, code: 'EBADSIZE' }
|
||||
})
|
||||
response.pipe(stream)
|
||||
```
|
||||
|
||||
Caveats: this does not work with `objectMode` streams, and will throw a
|
||||
`TypeError` from the constructor if the size argument is missing or
|
||||
invalid.
|
||||
-67
@@ -1,67 +0,0 @@
|
||||
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
|
||||
-3464
File diff suppressed because it is too large
Load Diff
-39
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"name": "minipass-sized",
|
||||
"version": "1.0.3",
|
||||
"description": "A Minipass stream that raises an error if you get a different number of bytes than expected",
|
||||
"author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
|
||||
"license": "ISC",
|
||||
"scripts": {
|
||||
"test": "tap",
|
||||
"snap": "tap",
|
||||
"preversion": "npm test",
|
||||
"postversion": "npm publish",
|
||||
"postpublish": "git push origin --follow-tags"
|
||||
},
|
||||
"tap": {
|
||||
"check-coverage": true
|
||||
},
|
||||
"devDependencies": {
|
||||
"tap": "^14.6.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"minipass": "^3.0.0"
|
||||
},
|
||||
"main": "index.js",
|
||||
"keywords": [
|
||||
"minipass",
|
||||
"size",
|
||||
"length"
|
||||
],
|
||||
"directories": {
|
||||
"test": "test"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/isaacs/minipass-sized.git"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user