@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 • 2.32 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":[""],"sourcesContent":["type TSourceObject = Record<string, unknown>;\r\ntype TSetItemFunction = (name: string, value: unknown, fd: FormData) => void;\r\n\r\nconst setItemFn: TSetItemFunction = (name = \"\", value, fd = new FormData()) => {\r\n fd.set(name, value?.toString?.() ?? String(value ?? \"\"));\r\n};\r\n\r\nexport type TGetFormDataFromObjArgs = Parameters<typeof getFormDataFromObj>;\r\n\r\nexport type TGetFormDataFromObjReturn = ReturnType<typeof getFormDataFromObj>;\r\n\r\n/**\r\n * Builds a FormData instance from a plain object.\r\n *\r\n * @param {Record<string, unknown>} [obj={}] Source object\r\n * @param {FormData} [fd=new FormData()] Existing FormData to append to\r\n * @param {(name: string, value: unknown, fd: FormData) => void} [setItem=setItemFn] Custom setter per entry\r\n * @returns {FormData} Result FormData\r\n * @throws {TypeError} getFormDataFromObj: expected an object\r\n * @example\r\n * const fd = getFormDataFromObj({ foo: 1, bar: \"x\" });\r\n * fd.get(\"foo\"); // \"1\"\r\n */\r\nexport const getFormDataFromObj = (\r\n obj: TSourceObject = {},\r\n fd: FormData = new FormData(),\r\n setItem: TSetItemFunction = setItemFn\r\n): FormData => {\r\n\r\n if (typeof obj !== \"object\" || !obj) {\r\n throw new TypeError(\"getFormDataFromObj: obj must be an object\");\r\n }\r\n\r\n if (!(fd instanceof FormData)) {\r\n throw new TypeError(\"getFormDataFromObj: fd must be an instance of FormData\");\r\n }\r\n\r\n if (typeof setItem !== \"function\") {\r\n throw new TypeError(\"getFormDataFromObj: setItem must be a function\");\r\n }\r\n\r\n Object.entries(obj).forEach(([ name, value ]) => {\r\n setItem(name, value, fd);\r\n });\r\n\r\n return fd;\r\n};\r\n"],"names":["setItemFn","name","value","fd","FormData","set","toString","String","getFormDataFromObj","obj","setItem","TypeError","Object","entries","forEach"],"mappings":"yDAGA,MAAMA,UAA8BA,CAACC,KAAO,GAAIC,MAAOC,GAAK,IAAIC,YAC9DD,GAAGE,IAAIJ,KAAMC,OAAOI,cAAgBC,OAAOL,OAAS;;;;;;;;;;;;SAmBzCM,mBAAqBA,CAChCC,IAAqB,GACrBN,GAAe,IAAIC,SACnBM,QAA4BV,aAG5B,UAAWS,MAAQ,WAAaA,IAC9B,MAAM,IAAIE,UAAU,6CAGtB,KAAMR,cAAcC,UAClB,MAAM,IAAIO,UAAU,0DAGtB,UAAWD,UAAY,WACrB,MAAM,IAAIC,UAAU,kDAGtBC,OAAOC,QAAQJ,KAAKK,QAAQ,EAAGb,KAAMC,UACnCQ,QAAQT,KAAMC,MAAOC,MAGvB,OAAOA"}