{"version":3,"file":"getCondition.cjs","names":[],"sources":["../../../src/interpreter/getCondition.ts"],"sourcesContent":["import type { ConditionContentStates } from '../transpiler';\n\n/**\n * Picks content based on a boolean condition.\n *\n * @param conditionContent - A map with 'true', 'false', and optionally 'fallback' keys.\n * @param state - The boolean state to match.\n * @returns The matching content.\n *\n * @example\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 */\nexport const getCondition = <const 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":";;;;;;;;;;;;;;;;;;;AAkBA,MAAa,gBACX,kBACA,UACY;CACZ,MAAM,YAAY,OAAO,KAAK,iBAAiB;CAC/C,MAAM,gBAAgB,UACpB,UAAU,SAAS;AAIrB,QACE,iBAAiB,GAAG,YACpB,iBAAiB,YAChB,iBAAiB"}