{"version":3,"file":"index.cjs","sources":[""],"sourcesContent":["export type TGetJSONFromStrArgs = Parameters<typeof getJSONFromStr>;\r\n\r\nexport type TGetJSONFromStrReturn = ReturnType<typeof getJSONFromStr>;\r\n\r\n/**\r\n * Safely parses a JSON string.\r\n *\r\n * @template T\r\n * @param {string} str Source string to parse\r\n * @param {(this: any, key: string, value: any) => any} [reviver] Optional reviver function\r\n * @param {(err: unknown) => void} [onError] Optional error callback\r\n * @returns {T | Record<string, never>} Parsed object or empty object on error\r\n * @throws {TypeError} getJSONFromStr: str must be a string\r\n * @throws {TypeError} getJSONFromStr: reviver must be a function if provided\r\n * @throws {TypeError} getJSONFromStr: onError must be a function if provided\r\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse\r\n * @example\r\n * // How to convert string to JSON?\r\n * const json = getJSONFromStr<{ hello: string }>('{\"hello\":\"world\"}');\r\n * console.log(json.hello); // => \"world\"\r\n */\r\nexport const getJSONFromStr = <T = unknown>(\r\n  str: string,\r\n  reviver?: (this: any, key: string, value: any) => any,\r\n  onError?: (err: unknown) => void\r\n): T | Record<string, never> => {\r\n  if (typeof str !== \"string\") {\r\n    throw new TypeError(\"getJSONFromStr: str must be a string\");\r\n  }\r\n  if (typeof reviver !== \"undefined\" && typeof reviver !== \"function\") {\r\n    throw new TypeError(\"getJSONFromStr: reviver must be a function if provided\");\r\n  }\r\n  if (typeof onError !== \"undefined\" && typeof onError !== \"function\") {\r\n    throw new TypeError(\"getJSONFromStr: onError must be a function if provided\");\r\n  }\r\n\r\n  let json: T | Record<string, never> = {};\r\n\r\n  try {\r\n    json = JSON.parse(str, reviver) as T;\r\n  } catch (err) {\r\n    if (typeof onError === \"function\") {\r\n      onError(err);\r\n    }\r\n  }\r\n\r\n  return json;\r\n};\r\n"],"names":["getJSONFromStr","str","reviver","onError","TypeError","json","JSON","parse","err"],"mappings":";;;;;;;;;;;;;;;;;GAqBO,MAAMA,eAAiBA,CAC5BC,IACAC,QACAC,WAEA,UAAWF,MAAQ,SACjB,MAAM,IAAIG,UAAU,wCAEtB,UAAWF,UAAY,oBAAsBA,UAAY,WACvD,MAAM,IAAIE,UAAU,0DAEtB,UAAWD,UAAY,oBAAsBA,UAAY,WACvD,MAAM,IAAIC,UAAU,0DAGtB,IAAIC,KAAkC,CAAA,EAEtC,IACEA,KAAOC,KAAKC,MAAMN,IAAKC,QACzB,CAAE,MAAOM,KACP,UAAWL,UAAY,WACrBA,QAAQK,IAEZ,CAEA,OAAOH"}