@web3r/flowerkit
Version:
Tree-shakable JavaScript and TypeScript utility library for frontend/browser apps: DOM, events, arrays, objects, strings, date, JSON, and network helpers (ESM/CJS, SSR-friendly).
1 lines • 1.78 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":[""],"sourcesContent":["type TFormDataEntryValue = string | File;\r\ntype TFormDataReturn = Record<string, TFormDataEntryValue | TFormDataEntryValue[]>;\r\n\r\nexport type TGetObjFromFormDataArgs = Parameters<typeof getObjFromFormData>;\r\n\r\nexport type TGetObjFromFormDataReturn = ReturnType<typeof getObjFromFormData>;\r\n\r\n/**\r\n * Gets an object from `FormData` interface\r\n * @param {FormData} [fd=new FormData()] Source `FormData` instance\r\n * @returns {Record<string, string|File|(string|File)[]>} Object representation\r\n * @throws {TypeError} getObjFromFormData: fd must be a FormData instance\r\n * @example\r\n * // How to convert `FormData` to object?\r\n * const fd = new FormData();\r\n * fd.append(\"test\", \"val\");\r\n * getObjFromFormData(fd); // { test: \"val\" }\r\n */\r\nexport const getObjFromFormData = (fd: FormData = new FormData()): TFormDataReturn => {\r\n if (!(fd instanceof FormData)) {\r\n throw new TypeError(\"getObjFromFormData: fd must be a FormData instance\");\r\n }\r\n\r\n const entries: [string, TFormDataEntryValue | TFormDataEntryValue[]][] = [ ...fd ].map(([ name, value ]) => {\r\n const values = fd.getAll(name) as TFormDataEntryValue[];\r\n return [ name, values.length > 1 ? values : value as TFormDataEntryValue ];\r\n });\r\n\r\n return Object.fromEntries(entries);\r\n};\r\n"],"names":["getObjFromFormData","fd","FormData","TypeError","entries","map","name","value","values","getAll","length","Object","fromEntries"],"mappings":";;;;;;;;;;;GAkBO,MAAMA,mBAAqBA,CAACC,GAAe,IAAIC,YACpD,KAAMD,cAAcC,UAClB,MAAM,IAAIC,UAAU,sDAGtB,MAAMC,QAAmE,IAAKH,IAAKI,IAAI,EAAGC,KAAMC,UAC9F,MAAMC,OAASP,GAAGQ,OAAOH,MACzB,MAAO,CAAEA,KAAME,OAAOE,OAAS,EAAIF,OAASD,SAG9C,OAAOI,OAAOC,YAAYR"}