https://github.com/denostack/reformdata
Reform FormData to Object or Array format.
https://github.com/denostack/reformdata
Last synced: 8 months ago
JSON representation
Reform FormData to Object or Array format.
- Host: GitHub
- URL: https://github.com/denostack/reformdata
- Owner: denostack
- License: mit
- Created: 2022-11-25T08:17:20.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-12-28T05:17:58.000Z (about 3 years ago)
- Last Synced: 2025-04-20T15:44:49.991Z (9 months ago)
- Language: TypeScript
- Homepage:
- Size: 15.6 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# reformdata (re:FormData)
Reform FormData to Object or Array format.
## Usage
### with Deno
```ts
import { reform } from "https://deno.land/x/reformdata/mod.ts";
const form = new FormData();
form.append("multiple[]", "1");
form.append("multiple[]", "2");
form.append("multiple[]", "3");
form.append("multiple[]", "4");
reform(form); // { multiple: ["1", "2", "3", "4"] }
```
### with Node.js & Browser
**Install**
```bash
npm install reformdata
```
```ts
import { reform } from "reformdata";
// Usage is as above :-)
```
### Support File or Blob
```ts
const form = new FormData();
form.append("text", "plain text");
form.append("blob1", new Blob());
form.append("blob2", new Blob([], { type: "application/json" }), "data.json");
form.append("file", new File([], "data.json", { type: "application/json" }));
reform(form);
/*
{
text: "plain text",
blob1: File
blob2: File
file: File
}
*/
```
### Array
```ts
const form = new FormData();
form.append("multiple[]", "1");
form.append("multiple[]", "2");
form.append("multiple[]", "3");
form.append("multiple[]", "4");
reform(form); // { multiple: ["1", "2", "3", "4"] }
```
### n-depth Array
```ts
const form = new FormData();
form.append("multiple[0][]", "1");
form.append("multiple[0][]", "2");
form.append("multiple[1][]", "3");
form.append("multiple[1][]", "4");
reform(form), // { multiple: [["1", "2"], ["3", "4"]] }
```
### Object
```ts
const form = new FormData();
// dot notation
form.append("users[1].name", "wan3land");
form.append("users[0].id", "10");
// bracket notation
form.append("users[1][id]", "11");
form.append("users[0][name]", "wan2land");
reform(form);
/*
{
users: [
{ id: "10", name: "wan2land" },
{ id: "11", name: "wan3land" },
],
}
*/
```
## Example with Deno
```ts
import { serve } from "https://deno.land/std@0.161.0/http/server.ts";
import reform from "https://deno.land/x/reformdata/mod.ts";
serve(async (request) => {
if (request.method === "POST") {
const formData = reform(await request.formData());
// do something
}
return new Response(":D");
});
```