{"version":3,"file":"index.cjs","sources":[""],"sourcesContent":["type TFormDataEntryValue = string | File;\ntype TFormDataReturn = Record<string, TFormDataEntryValue | TFormDataEntryValue[]>;\n\nexport type TGetObjFromFormDataArgs = Parameters<typeof getObjFromFormData>;\n\nexport type TGetObjFromFormDataReturn = ReturnType<typeof getObjFromFormData>;\n\n/**\n * Gets an object from `FormData` interface\n * @param {FormData} [fd=new FormData()] Source `FormData` instance\n * @returns {Record<string, string|File|(string|File)[]>} Object representation\n * @throws {TypeError} getObjFromFormData: fd must be a FormData instance\n * @example\n * // How to convert `FormData` to object?\n * const fd = new FormData();\n * fd.append(\"test\", \"val\");\n * getObjFromFormData(fd); // { test: \"val\" }\n * @example\n * // Convert repeated checkbox values into an array\n * const filters = new FormData();\n * filters.append(\"category\", \"books\");\n * filters.append(\"category\", \"games\");\n * getObjFromFormData(filters); // { category: [ \"books\", \"games\" ] }\n */\nexport const getObjFromFormData = (fd: FormData = new FormData()): TFormDataReturn => {\n  if (!(fd instanceof FormData)) {\n    throw new TypeError(\"getObjFromFormData: fd must be a FormData instance\");\n  }\n\n  const entries: [string, TFormDataEntryValue | TFormDataEntryValue[]][] = [ ...fd ].map(([ name, value ]) => {\n    const values = fd.getAll(name) as TFormDataEntryValue[];\n    return [ name, values.length > 1 ? values : value as TFormDataEntryValue ];\n  });\n\n  return Object.fromEntries(entries);\n};\n"],"names":["getObjFromFormData","fd","FormData","TypeError","entries","map","name","value","values","getAll","length","Object","fromEntries"],"mappings":"yDAwBO,MAAMA,mBAAqB,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"}