{"version":3,"file":"decomposeKeys.cjs","names":["DELIMITER","isPrimitive","sortMap","castings"],"sources":["../src/decomposeKeys.ts"],"sourcesContent":["import { castings } from '@bemedev/types';\nimport { DELIMITER } from './constants/strings';\nimport { isPrimitive } from './helpers';\nimport { sortMap } from './sortMap';\nimport type { KeysMatching, Ru } from './types.types';\n\nfunction ddecomposeKeys(val: any, prev = '', addObjectKeys = true) {\n  const _prev = prev ? prev + DELIMITER : '';\n  const output: string[] = [];\n  const entries1 = Object.entries(val);\n  entries1.forEach(([key, value]) => {\n    const isPrimit = isPrimitive(value);\n    if (!isPrimit) {\n      if (addObjectKeys) output.push(`${_prev}${key}`);\n      const values = ddecomposeKeys(\n        value,\n        `${_prev}${key}`,\n        addObjectKeys,\n      );\n      output.push(...values);\n    } else output.push(`${_prev}${key}`);\n  });\n  return output;\n}\n\ntype DecomposeKeys_F = <\n  T extends Ru,\n  AddObjectKeys extends boolean = true,\n>(\n  val: T,\n  sorter?: typeof sortMap,\n  addObjectKeys?: AddObjectKeys,\n) => KeysMatching<T, AddObjectKeys>[];\n\ntype _DecomposeKeys_F = (\n  val: any,\n  sorter?: typeof sortMap,\n  addObjectKeys?: boolean,\n) => string[];\n\nexport type DecomposeKeys = DecomposeKeys_F & {\n  strict: DecomposeKeys_F;\n  low: _DecomposeKeys_F;\n};\n\nconst _decomposeKeys: _DecomposeKeys_F = (\n  val,\n  sorter = sortMap,\n  addObjectKeys = true,\n) => {\n  const output1 = ddecomposeKeys(val, '', addObjectKeys);\n  output1.sort(sorter);\n  const regex = new RegExp(DELIMITER, 'g');\n  return output1.map(value => value.replace(regex, '.'));\n};\n\nexport const decomposeKeys: DecomposeKeys = (\n  val,\n  sorter,\n  addObjectKeys,\n) => {\n  return castings.commons.any(_decomposeKeys(val, sorter, addObjectKeys));\n};\ndecomposeKeys.low = _decomposeKeys;\ndecomposeKeys.strict =\n  castings.commons.unknown<DecomposeKeys_F>(_decomposeKeys);\n"],"mappings":";;;;;;AAMA,SAAS,eAAe,KAAU,OAAO,IAAI,gBAAgB,MAAM;CACjE,MAAM,QAAQ,OAAO,OAAOA,0BAAAA,YAAY;CACxC,MAAM,SAAmB,EAAE;AACV,QAAO,QAAQ,IAAI,CAC3B,SAAS,CAAC,KAAK,WAAW;AAEjC,MAAI,CADaC,gBAAAA,YAAY,MAAM,EACpB;AACb,OAAI,cAAe,QAAO,KAAK,GAAG,QAAQ,MAAM;GAChD,MAAM,SAAS,eACb,OACA,GAAG,QAAQ,OACX,cACD;AACD,UAAO,KAAK,GAAG,OAAO;QACjB,QAAO,KAAK,GAAG,QAAQ,MAAM;GACpC;AACF,QAAO;;AAuBT,MAAM,kBACJ,KACA,SAASC,gBAAAA,SACT,gBAAgB,SACb;CACH,MAAM,UAAU,eAAe,KAAK,IAAI,cAAc;AACtD,SAAQ,KAAK,OAAO;CACpB,MAAM,QAAQ,IAAI,OAAOF,0BAAAA,WAAW,IAAI;AACxC,QAAO,QAAQ,KAAI,UAAS,MAAM,QAAQ,OAAO,IAAI,CAAC;;AAGxD,MAAa,iBACX,KACA,QACA,kBACG;AACH,QAAOG,eAAAA,SAAS,QAAQ,IAAI,eAAe,KAAK,QAAQ,cAAc,CAAC;;AAEzE,cAAc,MAAM;AACpB,cAAc,SACZA,eAAAA,SAAS,QAAQ,QAAyB,eAAe"}