Modules@robinpath/formdata
formdata

@robinpath/formdata

0.1.1Node.jsPublic

Multipart form data builder and file upload handling

FormData

Multipart form data builder, file uploads, URL encoding/decoding, and form submission

Package: @robinpath/formdata | Category: Web | Type: Utility

Authentication

No authentication required. All functions are available immediately.

Use Cases

Use the formdata module when you need to:

  • Create a FormData object from key-value pairs -- Use formdata.create to perform this operation
  • Add a text field to a FormData -- Use formdata.addField to perform this operation
  • Add a file to a FormData -- Use formdata.addFile to perform this operation
  • Submit a FormData to a URL -- Use formdata.submit to perform this operation
  • URL-encode an object as application/x-www-form-urlencoded -- Use formdata.encode to perform this operation

Quick Reference

FunctionDescriptionReturns
createCreate a FormData object from key-value pairsFormData object
addFieldAdd a text field to a FormDataUpdated FormData
addFileAdd a file to a FormDataUpdated FormData
submitSubmit a FormData to a URL{status, ok, body}
encodeURL-encode an object as application/x-www-form-urlencodedURL-encoded string
decodeDecode a URL-encoded form bodyDecoded key-value pairs
uploadFileUpload a file to a URL as multipart form{status, ok, body, fileName, size}
parseMultipartParse a multipart form bodyArray of {name, filename, contentType, value}

Functions

create

Create a FormData object from key-value pairs

Module: formdata | Returns: object -- FormData object

formdata.create {"name": "Alice", "email": "alice@example.com"}
ParameterTypeRequiredDescription
dataobjectNoKey-value pairs

addField

Add a text field to a FormData

Module: formdata | Returns: object -- Updated FormData

formdata.addField $form "name" "Alice"
ParameterTypeRequiredDescription
formobjectYesFormData
namestringYesField name
valuestringYesField value

addFile

Add a file to a FormData

Module: formdata | Returns: object -- Updated FormData

formdata.addFile $form "avatar" "./photo.jpg"
ParameterTypeRequiredDescription
formobjectYesFormData
fieldNamestringYesForm field name
filePathstringYesFile path
fileNamestringNoOverride filename

submit

Submit a FormData to a URL

Module: formdata | Returns: object -- {status, ok, body}

formdata.submit "https://api.example.com/upload" $form
ParameterTypeRequiredDescription
urlstringYesTarget URL
formobjectYesFormData or key-value object
optionsobjectNo{method, headers}

encode

URL-encode an object as application/x-www-form-urlencoded

Module: formdata | Returns: string -- URL-encoded string

formdata.encode {"name": "Alice", "age": "30"}
ParameterTypeRequiredDescription
dataobjectYesKey-value pairs

decode

Decode a URL-encoded form body

Module: formdata | Returns: object -- Decoded key-value pairs

formdata.decode "name=Alice&age=30"
ParameterTypeRequiredDescription
bodystringYesURL-encoded string

uploadFile

Upload a file to a URL as multipart form

Module: formdata | Returns: object -- {status, ok, body, fileName, size}

formdata.uploadFile "https://api.example.com/upload" "./report.pdf"
ParameterTypeRequiredDescription
urlstringYesUpload URL
filePathstringYesLocal file path
optionsobjectNo{fieldName, fileName, headers, fields}

parseMultipart

Parse a multipart form body

Module: formdata | Returns: array -- Array of {name, filename, contentType, value}

formdata.parseMultipart $rawBody $boundary
ParameterTypeRequiredDescription
bodystringYesRaw multipart body
boundarystringYesMultipart boundary string

Error Handling

All functions throw on failure. Common errors:

ErrorCause
First argument must be a FormData objectPassed a non-FormData value to addField/addFile
URL is requiredMissing URL in submit call
Boundary is requiredMissing boundary in parseMultipart call

Related Modules

  • form -- Declarative form builder for defining form fields inline
  • json -- JSON module for complementary functionality

Versions (1)

VersionTagPublished
0.1.1latest1 months ago
Install
$ robinpath add @robinpath/formdata

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.1
LicenseMIT
Unpacked Size4.7 KB
Versions1
Weekly Downloads25
Total Downloads25
Stars0
Last Publish1 months ago
Created1 months ago

Keywords

Category

web