{"version":3,"sources":["../../../src/interpreter/getCondition.ts"],"sourcesContent":["import type { ConditionContentStates } from '../transpiler/condition/condition';\n\n/**\n * Allow to pick a content based on a condition.\n *\n * Usage:\n *\n * ```ts\n * const content = getCondition({\n *  'true': 'The condition is validated',\n *  'false': 'The condition is not validated',\n * }, true);\n * // 'The condition is validated'\n * ```\n *\n * The last key provided will be used as the fallback value.\n *\n * ```ts\n * const content = getCondition({\n *  'false': 'The condition is not validated',\n *  'true': 'The condition is validated',\n * }, undefined);\n * // 'The condition is validated'\n */\nexport const getCondition = <Content>(\n  conditionContent: ConditionContentStates<Content>,\n  state?: boolean\n): Content => {\n  const stateList = Object.keys(conditionContent);\n  const fallbackState = stateList[\n    stateList.length - 1\n  ] as keyof typeof conditionContent;\n\n  // Default or error handling if no keys match\n  return (\n    conditionContent[`${state}` as keyof typeof conditionContent] ??\n    conditionContent['fallback'] ??\n    (conditionContent[fallbackState] as Content)\n  );\n};\n"],"mappings":"AAwBO,MAAM,eAAe,CAC1B,kBACA,UACY;AACZ,QAAM,YAAY,OAAO,KAAK,gBAAgB;AAC9C,QAAM,gBAAgB,UACpB,UAAU,SAAS,CACrB;AAGA,SACE,iBAAiB,GAAG,KAAK,EAAmC,KAC5D,iBAAiB,UAAU,KAC1B,iBAAiB,aAAa;AAEnC;","names":[]}