1.0.0 • Published 1 year ago

@thenorthmemory/multipart v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

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

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

NameTypeDescription
mimeTypesobject.<string, string>Built-in mime-type mapping

multipart.boundary

Kind: instance property of Multipart
Read only: true
Properties

NameTypeDescription
boundaryBufferThe boundary buffer.

multipart.data

Kind: instance property of Multipart
Access: protected
Properties

NameTypeDescription
dataArray.<(Buffer|ReadStream)>The Multipart's instance data storage

multipart.indices

Kind: instance property of Multipart
Access: protected
Properties

NameTypeDescription
indicesArray.<IndexTuple.<(string|undefined), number>>The entities' value indices whose were in data

multipart.getBuffer() ⇒ Buffer

To retrieve the Miltipart#data buffer

Kind: instance method of Multipart
Returns: Buffer - - The payload buffer

multipart.getHeaders() ⇒ object.<string, string>

To retrieve the Content-Type multipart/form-data header

Kind: instance method of Multipart
Returns: object.<string, string> - - The Content-Type header With boundary

multipart.appendMimeTypes(things) ⇒ this

Append a customized Multipart#mimeType

Kind: instance method of Multipart
Returns: this - - The Multipart class instance self

ParamTypeDescription
thingsobject.<string, string>The mime-type

Example

.appendMimeTypes({p12: 'application/x-pkcs12'})
.appendMimeTypes({txt: 'text/plain'})

multipart.append(name, value, filename) ⇒ this

Append data wrapped by boundary

Kind: instance method of Multipart
Returns: this - - The Multipart class instance self

ParamTypeDescription
namestringThe field name
valuestring | Buffer | ReadStreamThe value
filenamestringOptional filename, when provided, then append the Content-Type after of the Content-Disposition

multipart.formed(name, value, filename) ⇒ Array.<(Buffer|ReadStream)>

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

ParamTypeDescription
namestringThe field name
valuestring | Buffer | ReadStreamThe value
filenamestringOptional filename, when provided, then append the Content-Type after of the Content-Disposition

multipart.set(name, value, filename) ⇒ this

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

ParamTypeDescription
namestringThe field name
valuestring | Buffer | ReadStreamThe value
filenamestringOptional filename, when provided, then append the Content-Type after of the Content-Disposition

multipart.delete(name) ⇒ this

Deletes a key and its value(s) from a data instance

Kind: instance method of Multipart
Returns: this - - The Multipart instance

ParamTypeDescription
namestringThe field name

multipart.get(name) ⇒ Buffer | ReadStream | undefined

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

ParamTypeDescription
namestringThe field name

multipart.getAll(name) ⇒ Array.<(Buffer|ReadStream)>

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)

ParamTypeDescription
namestringThe field name

multipart.has(name) ⇒ boolean

Returns a boolean stating whether a data instance contains a certain key.

Kind: instance method of Multipart
Returns: boolean - - True for contains

ParamTypeDescription
namestringThe field name

multipart.entries() ⇒ Iterator.<Array.<EntryTuple.<(string|undefined), (Buffer|ReadStream)>>>

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.

multipart.keys() ⇒ Iterator.<(string|undefined)>

To go through all keys contained in data instance

Kind: instance method of Multipart
Returns: Iterator.<(string|undefined)> - - An Array Iterator key pairs.

multipart.values() ⇒ Iterator.<(Buffer|ReadStream)>

To go through all values contained in data instance

Kind: instance method of Multipart
Returns: Iterator.<(Buffer|ReadStream)> - - An Array Iterator value pairs.

multipart.toString() ⇒ string

Kind: instance method of Multipart
Returns: string - - FormData string

multipart.flowing(end) ⇒ Promise.<this>

Pushing data into the readable BufferList

Kind: instance method of Multipart
Returns: Promise.<this> - - The Multipart instance

ParamTypeDefaultDescription
endbooleantrueEnd the writer when the reader ends. Default: true. Available {@since v0.8.0}

multipart.pipe(destination, options) ⇒ stream.Writable

Attaches a Writable stream to the Multipart instance

License

MIT