{"version":3,"file":"unstable-core-do-not-import.mjs","names":[],"sources":["../src/unstable-core-do-not-import/http/formDataToObject.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n\nimport { emptyObject } from '../utils';\n\nconst isNumberString = (str: string) => /^\\d+$/.test(str);\n\nfunction set(\n  obj: Record<string, any>,\n  path: readonly string[],\n  value: unknown,\n): void {\n  if (path.length > 1) {\n    const newPath = [...path];\n    const key = newPath.shift()!;\n    const nextKey = newPath[0]!;\n\n    if (!Object.hasOwn(obj, key)) {\n      obj[key] = isNumberString(nextKey) ? [] : emptyObject();\n    } else if (Array.isArray(obj[key]) && !isNumberString(nextKey)) {\n      obj[key] = Object.fromEntries(Object.entries(obj[key]));\n    }\n\n    set(obj[key], newPath, value);\n\n    return;\n  }\n  const p = path[0]!;\n\n  if (obj[p] === undefined) {\n    obj[p] = value;\n  } else if (Array.isArray(obj[p])) {\n    obj[p].push(value);\n  } else {\n    obj[p] = [obj[p], value];\n  }\n}\n\nexport function formDataToObject(formData: FormData) {\n  const obj: Record<string, unknown> = emptyObject();\n\n  for (const [key, value] of formData.entries()) {\n    const parts = key.split(/[\\.\\[\\]]/).filter(Boolean);\n    set(obj, parts, value);\n  }\n\n  return obj;\n}\n"],"mappings":";;;;;;;;AAIA,MAAM,kBAAkB,QAAgB,QAAQ,KAAK,GAAG;AAExD,SAAS,IACP,KACA,MACA,OACM;CACN,IAAI,KAAK,SAAS,GAAG;EACnB,MAAM,UAAU,CAAC,GAAG,IAAI;EACxB,MAAM,MAAM,QAAQ,MAAM;EAC1B,MAAM,UAAU,QAAQ;EAExB,IAAI,CAAC,OAAO,OAAO,KAAK,GAAG,GACzB,IAAI,OAAO,eAAe,OAAO,IAAI,CAAC,IAAI,YAAY;OACjD,IAAI,MAAM,QAAQ,IAAI,IAAI,KAAK,CAAC,eAAe,OAAO,GAC3D,IAAI,OAAO,OAAO,YAAY,OAAO,QAAQ,IAAI,IAAI,CAAC;EAGxD,IAAI,IAAI,MAAM,SAAS,KAAK;EAE5B;CACF;CACA,MAAM,IAAI,KAAK;CAEf,IAAI,IAAI,OAAO,KAAA,GACb,IAAI,KAAK;MACJ,IAAI,MAAM,QAAQ,IAAI,EAAE,GAC7B,IAAI,EAAE,CAAC,KAAK,KAAK;MAEjB,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK;AAE3B;AAEA,SAAgB,iBAAiB,UAAoB;CACnD,MAAM,MAA+B,YAAY;CAEjD,KAAK,MAAM,CAAC,KAAK,UAAU,SAAS,QAAQ,GAE1C,IAAI,KADU,IAAI,MAAM,UAAU,CAAC,CAAC,OAAO,OAC9B,GAAG,KAAK;CAGvB,OAAO;AACT"}