{"version":3,"file":"recompose.cjs","sources":["../src/recompose.ts"],"sourcesContent":["import { merge } from 'ts-deepmerge';\nimport { SEPARATOR } from './constants/strings';\nimport type { Recompose, Ru } from './types.types';\n\nexport function recomposeObjectUrl<T>(shape: string, value: T) {\n  const obj: Ru = {};\n  if (shape.length <= 0) return obj;\n\n  const keys = shape.split(SEPARATOR);\n  if (keys.length === 1) {\n    const key = keys.shift();\n    obj[key!] = value;\n  } else {\n    const key = keys.shift();\n    obj[key!] = recomposeObjectUrl(keys.join(SEPARATOR), value);\n  }\n\n  return obj;\n}\n\n/**\n *  Recompose a flatten object \n *  @example\n * \n *  { 'data.age': 10, 'human.login': 'login' }\n *  will become\n *  {\n      data: {\n        age: 10,\n      },\n      human: {\n        login: 'login',\n      },\n    }\n *  @remark   \n *  The generated typescript type takes too much ressources\n\n *  @todo\n    Add type to the return\n */\ntype Recompose_F = <T extends Ru>(shape: T) => Recompose<T>;\ntype _Recompose_F = (shape: any) => any;\n\nexport type Recomposer = Recompose_F & {\n  strict: Recompose_F;\n  low: _Recompose_F;\n};\n\nconst _recompose: _Recompose_F = shape => {\n  const entries = Object.entries(shape);\n  const arr: any[] = [];\n  entries.forEach(([key, value]) => {\n    arr.push(recomposeObjectUrl(key, value));\n  });\n  return merge(...arr);\n};\n\nexport const recompose: Recomposer = shape => _recompose(shape);\nrecompose.low = _recompose;\nrecompose.strict = _recompose;\n"],"names":["SEPARATOR","merge"],"mappings":";;;;;AAIgB,SAAA,kBAAkB,CAAI,KAAa,EAAE,KAAQ,EAAA;IAC3D,MAAM,GAAG,GAAO,EAAE;AAClB,IAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;AAAE,QAAA,OAAO,GAAG;IAEjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAACA,2BAAS,CAAC;AACnC,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;AACxB,QAAA,GAAG,CAAC,GAAI,CAAC,GAAG,KAAK;;SACZ;AACL,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;AACxB,QAAA,GAAG,CAAC,GAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAACA,2BAAS,CAAC,EAAE,KAAK,CAAC;;AAG7D,IAAA,OAAO,GAAG;AACZ;AA8BA,MAAM,UAAU,GAAiB,KAAK,IAAG;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;IACrC,MAAM,GAAG,GAAU,EAAE;IACrB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;QAC/B,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC1C,KAAC,CAAC;AACF,IAAA,OAAOC,iBAAK,CAAC,GAAG,GAAG,CAAC;AACtB,CAAC;AAEM,MAAM,SAAS,GAAe,KAAK,IAAI,UAAU,CAAC,KAAK;AAC9D,SAAS,CAAC,GAAG,GAAG,UAAU;AAC1B,SAAS,CAAC,MAAM,GAAG,UAAU;;;;;"}