Multipart
Simple and lite of the multipart/form-data
implementation. Split from wechatpay-axios-plugin
project for general usages.
Usage
npm i @thenorthmemory/multipart
import Multipart from '@thenorthmemory/multipart';
// buffer style(Synchronous)
(new Multipart())
.append('a', 1)
.append('b', '2')
.append('c', Buffer.from('31'))
.append('d', JSON.stringify({}), 'any.json')
.append('e', require('fs').readFileSync('/path/your/file.jpg'), 'file.jpg')
.getBuffer();
// stream style(Asynchronous)
(new Multipart())
.append('f', require('fs').createReadStream('/path/your/file2.jpg'), 'file2.jpg')
.pipe(require('fs').createWriteStream('./file3.jpg'));
API
-
Multipart
- Usage
-
API
- new Multipart()
- multipart.mimeTypes
- multipart.boundary
- multipart.data
- multipart.indices
- multipart.getBuffer() ⇒
Buffer
- multipart.getHeaders() ⇒
object.<string, string>
- multipart.appendMimeTypes(things) ⇒
this
- multipart.append(name, value, [filename]) ⇒
this
- multipart.formed(name, value, [filename]) ⇒
Array.<(Buffer|ReadStream)>
- multipart.set(name, value, [filename]) ⇒
this
- multipart.delete(name) ⇒
this
- multipart.get(name) ⇒
Buffer
|ReadStream
|undefined
- multipart.getAll(name) ⇒
Array.<(Buffer|ReadStream)>
- multipart.has(name) ⇒
boolean
- multipart.entries() ⇒
Iterator.<Array.<EntryTuple.<(string|undefined), (Buffer|ReadStream)>>>
- multipart.keys() ⇒
Iterator.<(string|undefined)>
- multipart.values() ⇒
Iterator.<(Buffer|ReadStream)>
- multipart.toString() ⇒
string
- multipart.flowing([end]) ⇒
Promise.<this>
- multipart.pipe(destination, [options]) ⇒
stream.Writable
- License
new Multipart()
Create a multipart/form-data
buffer container for the media(image/video) file uploading.
multipart.mimeTypes
Kind: instance property of Multipart
Access: protected
Properties
Name | Type | Description |
---|---|---|
mimeTypes | object.<string, string> |
Built-in mime-type mapping |
multipart.boundary
Kind: instance property of Multipart
Read only: true
Properties
Name | Type | Description |
---|---|---|
boundary | Buffer |
The boundary buffer. |
multipart.data
Kind: instance property of Multipart
Access: protected
Properties
Name | Type | Description |
---|---|---|
data | Array.<(Buffer|ReadStream)> |
The Multipart's instance data storage |
multipart.indices
Kind: instance property of Multipart
Access: protected
Properties
Name | Type | Description |
---|---|---|
indices | Array.<IndexTuple.<(string|undefined), number>> |
The entities' value indices whose were in data |
Buffer
multipart.getBuffer() ⇒ To retrieve the Miltipart#data buffer
Kind: instance method of Multipart
Returns: Buffer
- - The payload buffer
object.<string, string>
multipart.getHeaders() ⇒ To retrieve the Content-Type
multipart/form-data header
Kind: instance method of Multipart
Returns: object.<string, string>
- - The Content-Type
header With boundary
this
multipart.appendMimeTypes(things) ⇒ Append a customized Multipart#mimeType
Kind: instance method of Multipart
Returns: this
- - The Multipart
class instance self
Param | Type | Description |
---|---|---|
things | object.<string, string> |
The mime-type |
Example
.appendMimeTypes({p12: 'application/x-pkcs12'})
.appendMimeTypes({txt: 'text/plain'})
this
multipart.append(name, value, [filename]) ⇒ Append data wrapped by boundary
Kind: instance method of Multipart
Returns: this
- - The Multipart
class instance self
Param | Type | Description |
---|---|---|
name | string |
The field name |
value |
string | Buffer | ReadStream
|
The value |
[filename] | string |
Optional filename, when provided, then append the Content-Type after of the Content-Disposition
|
Array.<(Buffer|ReadStream)>
multipart.formed(name, value, [filename]) ⇒ Formed a named value, a filename reported to the server, when a Buffer or FileStream is passed as the second parameter.
Kind: instance method of Multipart
Returns: Array.<(Buffer|ReadStream)>
- - The part of data
Param | Type | Description |
---|---|---|
name | string |
The field name |
value |
string | Buffer | ReadStream
|
The value |
[filename] | string |
Optional filename, when provided, then append the Content-Type after of the Content-Disposition
|
this
multipart.set(name, value, [filename]) ⇒ Sets a new value for an existing key inside a data instance, or adds the key/value if it does not already exist.
Kind: instance method of Multipart
Returns: this
- - The Multipart instance
Param | Type | Description |
---|---|---|
name | string |
The field name |
value |
string | Buffer | ReadStream
|
The value |
[filename] | string |
Optional filename, when provided, then append the Content-Type after of the Content-Disposition
|
this
multipart.delete(name) ⇒ Deletes a key and its value(s) from a data instance
Kind: instance method of Multipart
Returns: this
- - The Multipart instance
Param | Type | Description |
---|---|---|
name | string |
The field name |
Buffer
| ReadStream
| undefined
multipart.get(name) ⇒ Returns the first value associated with a given key from within a data instance
Kind: instance method of Multipart
Returns: Buffer
| ReadStream
| undefined
- value - The value, undefined means none named key exists
Param | Type | Description |
---|---|---|
name | string |
The field name |
Array.<(Buffer|ReadStream)>
multipart.getAll(name) ⇒ Returns all values associated with a given key from within a data instance
Kind: instance method of Multipart
Returns: Array.<(Buffer|ReadStream)>
- value(s) - The value(s)
Param | Type | Description |
---|---|---|
name | string |
The field name |
boolean
multipart.has(name) ⇒ Returns a boolean stating whether a data instance contains a certain key.
Kind: instance method of Multipart
Returns: boolean
- - True for contains
Param | Type | Description |
---|---|---|
name | string |
The field name |
Iterator.<Array.<EntryTuple.<(string|undefined), (Buffer|ReadStream)>>>
multipart.entries() ⇒ To go through all key/value pairs contained in this data instance
Kind: instance method of Multipart
Returns: Iterator.<Array.<EntryTuple.<(string|undefined), (Buffer|ReadStream)>>>
- - An Array Iterator key/value pairs.
Iterator.<(string|undefined)>
multipart.keys() ⇒ To go through all keys contained in data instance
Kind: instance method of Multipart
Returns: Iterator.<(string|undefined)>
- - An Array Iterator key pairs.
Iterator.<(Buffer|ReadStream)>
multipart.values() ⇒ To go through all values contained in data instance
Kind: instance method of Multipart
Returns: Iterator.<(Buffer|ReadStream)>
- - An Array Iterator value pairs.
string
multipart.toString() ⇒ Kind: instance method of Multipart
Returns: string
- - FormData string
Promise.<this>
multipart.flowing([end]) ⇒ Pushing data into the readable BufferList
Kind: instance method of Multipart
Returns: Promise.<this>
- - The Multipart instance
Param | Type | Default | Description |
---|---|---|---|
[end] | boolean |
true |
End the writer when the reader ends. Default: true . Available {@since v0.8.0} |
stream.Writable
multipart.pipe(destination, [options]) ⇒ Attaches a Writable stream to the Multipart instance