demo___customer_pitch-c4152739-a50b-4b5b-9d4d-0561461666d9.zip-extract/_dependencies/npm/raw-body-2.5.1/README.md

Path
demo___customer_pitch-c4152739-a50b-4b5b-9d4d-0561461666d9.zip-extract/_dependencies/npm/raw-body-2.5.1/README.md
Status
scanned
Type
file
Name
README.md
Extension
.md
Programming language

      
    
Mime type
text/x-java
File type
Java source, ASCII text
Tag

      
    
Rootfs path

      
    
Size
6534 (6.4 KB)
MD5
32af32a261ef743331eb40c17d60b9d4
SHA1
6d463cf47acd9dc45ecf5d67db475cca96038145
SHA256
77c41f8504e59a2bf0fac4a5ea951ed9be08e624d0013d0616fef04db9d41541
SHA512

      
    
SHA1_git
695c6607369db5909403329f7f480afdc11e458f
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
README.md | 6.4 KB |

# raw-body [![NPM Version][npm-image]][npm-url] [![NPM Downloads][downloads-image]][downloads-url] [![Node.js Version][node-version-image]][node-version-url] [![Build status][github-actions-ci-image]][github-actions-ci-url] [![Test coverage][coveralls-image]][coveralls-url] Gets the entire buffer of a stream either as a `Buffer` or a string. Validates the stream's length against an expected length and maximum limit. Ideal for parsing request bodies. ## Install This is a [Node.js](https://nodejs.org/en/) module available through the [npm registry](https://www.npmjs.com/). Installation is done using the [`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): ```sh $ npm install raw-body ``` ### TypeScript This module includes a [TypeScript](https://www.typescriptlang.org/) declaration file to enable auto complete in compatible editors and type information for TypeScript projects. This module depends on the Node.js types, so install `@types/node`: ```sh $ npm install @types/node ``` ## API ```js var getRawBody = require('raw-body') ``` ### getRawBody(stream, [options], [callback]) **Returns a promise if no callback specified and global `Promise` exists.** Options: - `length` - The length of the stream. If the contents of the stream do not add up to this length, an `400` error code is returned. - `limit` - The byte limit of the body. This is the number of bytes or any string format supported by [bytes](https://www.npmjs.com/package/bytes), for example `1000`, `'500kb'` or `'3mb'`. If the body ends up being larger than this limit, a `413` error code is returned. - `encoding` - The encoding to use to decode the body into a string. By default, a `Buffer` instance will be returned when no encoding is specified. Most likely, you want `utf-8`, so setting `encoding` to `true` will decode as `utf-8`. You can use any type of encoding supported by [iconv-lite](https://www.npmjs.org/package/iconv-lite#readme). You can also pass a string in place of options to just specify the encoding. If an error occurs, the stream will be paused, everything unpiped, and you are responsible for correctly disposing the stream. For HTTP requests, you may need to finish consuming the stream if you want to keep the socket open for future requests. For streams that use file descriptors, you should `stream.destroy()` or `stream.close()` to prevent leaks. ## Errors This module creates errors depending on the error condition during reading. The error may be an error from the underlying Node.js implementation, but is otherwise an error created by this module, which has the following attributes: * `limit` - the limit in bytes * `length` and `expected` - the expected length of the stream * `received` - the received bytes * `encoding` - the invalid encoding * `status` and `statusCode` - the corresponding status code for the error * `type` - the error type ### Types The errors from this module have a `type` property which allows for the programmatic determination of the type of error returned. #### encoding.unsupported This error will occur when the `encoding` option is specified, but the value does not map to an encoding supported by the [iconv-lite](https://www.npmjs.org/package/iconv-lite#readme) module. #### entity.too.large This error will occur when the `limit` option is specified, but the stream has an entity that is larger. #### request.aborted This error will occur when the request stream is aborted by the client before reading the body has finished. #### request.size.invalid This error will occur when the `length` option is specified, but the stream has emitted more bytes. #### stream.encoding.set This error will occur when the given stream has an encoding set on it, making it a decoded stream. The stream should not have an encoding set and is expected to emit `Buffer` objects. #### stream.not.readable This error will occur when the given stream is not readable. ## Examples ### Simple Express example ```js var contentType = require('content-type') var express = require('express') var getRawBody = require('raw-body') var app = express() app.use(function (req, res, next) { getRawBody(req, { length: req.headers['content-length'], limit: '1mb', encoding: contentType.parse(req).parameters.charset }, function (err, string) { if (err) return next(err) req.text = string next() }) }) // now access req.text ``` ### Simple Koa example ```js var contentType = require('content-type') var getRawBody = require('raw-body') var koa = require('koa') var app = koa() app.use(function * (next) { this.text = yield getRawBody(this.req, { length: this.req.headers['content-length'], limit: '1mb', encoding: contentType.parse(this.req).parameters.charset }) yield next }) // now access this.text ``` ### Using as a promise To use this library as a promise, simply omit the `callback` and a promise is returned, provided that a global `Promise` is defined. ```js var getRawBody = require('raw-body') var http = require('http') var server = http.createServer(function (req, res) { getRawBody(req) .then(function (buf) { res.statusCode = 200 res.end(buf.length + ' bytes submitted') }) .catch(function (err) { res.statusCode = 500 res.end(err.message) }) }) server.listen(3000) ``` ### Using with TypeScript ```ts import * as getRawBody from 'raw-body'; import * as http from 'http'; const server = http.createServer((req, res) => { getRawBody(req) .then((buf) => { res.statusCode = 200; res.end(buf.length + ' bytes submitted'); }) .catch((err) => { res.statusCode = err.statusCode; res.end(err.message); }); }); server.listen(3000); ``` ## License [MIT](LICENSE) [npm-image]: https://img.shields.io/npm/v/raw-body.svg [npm-url]: https://npmjs.org/package/raw-body [node-version-image]: https://img.shields.io/node/v/raw-body.svg [node-version-url]: https://nodejs.org/en/download/ [coveralls-image]: https://img.shields.io/coveralls/stream-utils/raw-body/master.svg [coveralls-url]: https://coveralls.io/r/stream-utils/raw-body?branch=master [downloads-image]: https://img.shields.io/npm/dm/raw-body.svg [downloads-url]: https://npmjs.org/package/raw-body [github-actions-ci-image]: https://img.shields.io/github/workflow/status/stream-utils/raw-body/ci/master?label=ci [github-actions-ci-url]: https://github.com/jshttp/stream-utils/raw-body?query=workflow%3Aci
Detected license expression
mit
Detected license expression (SPDX)
MIT
Percentage of license text
0.32
Copyrights

      
    
Holders

      
    
Authors

      
    
License detections License expression License expression SPDX
mit-bdcba66f-6e80-f7bd-7994-748183fe5693 mit MIT
URL Start line End line
https://nodejs.org/en 15 15
https://www.npmjs.com/ 16 16
https://docs.npmjs.com/getting-started/installing-npm-packages-locally 17 17
https://www.typescriptlang.org/ 25 25
https://www.npmjs.com/package/bytes 51 51
https://www.npmjs.org/package/iconv-lite#readme 58 58
https://img.shields.io/npm/v/raw-body.svg 214 214
https://npmjs.org/package/raw-body 215 215
https://img.shields.io/node/v/raw-body.svg 216 216
https://nodejs.org/en/download/ 217 217
https://img.shields.io/coveralls/stream-utils/raw-body/master.svg 218 218
https://coveralls.io/r/stream-utils/raw-body?branch=master 219 219
https://img.shields.io/npm/dm/raw-body.svg 220 220
https://img.shields.io/github/workflow/status/stream-utils/raw-body/ci/master?label=ci 222 222
https://github.com/jshttp/stream-utils/raw-body?query=workflow:ci 223 223
Package URL License Primary language
pkg:npm/acme-demo-app@1.0.0 JavaScript
pkg:npm/raw-body@2.5.1 mit JavaScript