{"version":3,"file":"set.mjs","sources":["../../../../../packages/utils/lang/set.ts"],"sourcesContent":["import { get } from './get';\n\nfunction internalSet<Entity = any, Output = Entity, Value = any>(\n  entity: Entity,\n  paths: Array<string | number>,\n  value: Value,\n  removeIfUndefined: boolean,\n): Output {\n  if (!paths.length)\n    return value as unknown as Output;\n\n  const [path, ...restPath] = paths;\n\n  let clone: Output;\n  if (!entity && typeof path === 'number')\n    clone = [] as unknown as Output;\n  else if (Array.isArray(entity))\n    clone = [...entity] as unknown as Output;\n  else\n    clone = { ...entity } as unknown as Output;\n\n  // Delete prop if `removeIfUndefined` and value is undefined\n  if (removeIfUndefined && value === undefined && restPath.length === 1)\n    delete clone[path][restPath[0]];\n  else\n    clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n\n  return clone;\n}\n\nexport function set<Entity = any, Output = Entity, Value = any>(\n  entity: Entity,\n  paths: Array<string | number>,\n  value: Value,\n  removeIfUndefined = false,\n): Output {\n  // Do nothing if `removeIfUndefined` and parent object not exist\n  if (\n    paths.length\n    && removeIfUndefined\n    && value === undefined\n    && !get(entity, paths.slice(0, -1))\n  ) {\n    return entity as unknown as Output;\n  }\n\n  return internalSet(entity, paths, value, removeIfUndefined);\n}\n"],"names":[],"mappings":";;AAEA,SAAS,WACP,CAAA,MAAA,EACA,KACA,EAAA,KAAA,EACA,iBACQ,EAAA;AACR,EAAA,IAAI,CAAC,KAAM,CAAA,MAAA;AACT,IAAO,OAAA,KAAA,CAAA;AAET,EAAA,MAAM,CAAC,IAAA,EAAM,GAAG,QAAQ,CAAI,GAAA,KAAA,CAAA;AAE5B,EAAI,IAAA,KAAA,CAAA;AACJ,EAAI,IAAA,CAAC,MAAU,IAAA,OAAO,IAAS,KAAA,QAAA;AAC7B,IAAA,KAAA,GAAQ,EAAC,CAAA;AAAA,OACF,IAAA,KAAA,CAAM,QAAQ,MAAM,CAAA;AAC3B,IAAQ,KAAA,GAAA,CAAC,GAAG,MAAM,CAAA,CAAA;AAAA;AAElB,IAAQ,KAAA,GAAA,EAAE,GAAG,MAAO,EAAA,CAAA;AAGtB,EAAA,IAAI,iBAAqB,IAAA,KAAA,KAAU,KAAa,CAAA,IAAA,QAAA,CAAS,MAAW,KAAA,CAAA;AAClE,IAAA,OAAO,KAAM,CAAA,IAAI,CAAE,CAAA,QAAA,CAAS,CAAC,CAAC,CAAA,CAAA;AAAA;AAE9B,IAAM,KAAA,CAAA,IAAI,IAAI,WAAY,CAAA,KAAA,CAAM,IAAI,CAAG,EAAA,QAAA,EAAU,OAAO,iBAAiB,CAAA,CAAA;AAE3E,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAEO,SAAS,GACd,CAAA,MAAA,EACA,KACA,EAAA,KAAA,EACA,oBAAoB,KACZ,EAAA;AAER,EAAA,IACE,KAAM,CAAA,MAAA,IACH,iBACA,IAAA,KAAA,KAAU,KACV,CAAA,IAAA,CAAC,GAAI,CAAA,MAAA,EAAQ,KAAM,CAAA,KAAA,CAAM,CAAG,EAAA,CAAA,CAAE,CAAC,CAClC,EAAA;AACA,IAAO,OAAA,MAAA,CAAA;AAAA,GACT;AAEA,EAAA,OAAO,WAAY,CAAA,MAAA,EAAQ,KAAO,EAAA,KAAA,EAAO,iBAAiB,CAAA,CAAA;AAC5D;;;;"}