(...args: Array<CaseWhenValue>)
| 576 | ...rest: Array<CaseWhenValue> |
| 577 | ): any |
| 578 | export function caseWhen(...args: Array<CaseWhenValue>): any { |
| 579 | if (args.length < 2) { |
| 580 | throw new Error(`caseWhen() requires at least two arguments`) |
| 581 | } |
| 582 | |
| 583 | const pairCount = Math.floor(args.length / 2) |
| 584 | for (let i = 0; i < pairCount; i++) { |
| 585 | const condition = args[i * 2] |
| 586 | if (!isConditionValue(condition)) { |
| 587 | throw new Error(`caseWhen() conditions must be expression-like values`) |
| 588 | } |
| 589 | } |
| 590 | |
| 591 | if (caseWhenHasOnlyExpressionValues(args)) { |
| 592 | return new Func( |
| 593 | `caseWhen`, |
| 594 | args.map((arg) => toExpression(arg)), |
| 595 | ) |
| 596 | } |
| 597 | |
| 598 | return new CaseWhenWrapper(args) |
| 599 | } |
| 600 | |
| 601 | export function add<T1 extends ExpressionLike, T2 extends ExpressionLike>( |
| 602 | left: T1, |
searching dependent graphs…