(
arg1: true | Id,
arg2?: Id | ((getCell: GetCell, rowId: Id) => Id | undefined),
arg3?: Id | ((getCell: GetCell, rowId: Id) => Id | undefined),
arg4?: Id | ((getCell: GetCell, rowId: Id) => Id | undefined),
)
| 419 | }; |
| 420 | |
| 421 | const join = ( |
| 422 | arg1: true | Id, |
| 423 | arg2?: Id | ((getCell: GetCell, rowId: Id) => Id | undefined), |
| 424 | arg3?: Id | ((getCell: GetCell, rowId: Id) => Id | undefined), |
| 425 | arg4?: Id | ((getCell: GetCell, rowId: Id) => Id | undefined), |
| 426 | ) => { |
| 427 | const joinedTableId = (isTrue(arg1) ? arg2 : arg1) as Id; |
| 428 | const [fromJoinAlias, onArg] = isTrue(arg1) |
| 429 | ? isUndefined(arg4) || isFunction(arg3) |
| 430 | ? [undefined, arg3] |
| 431 | : [arg3, arg4] |
| 432 | : isUndefined(arg3) || isFunction(arg2) |
| 433 | ? [undefined, arg2] |
| 434 | : [arg2, arg3]; |
| 435 | const joinEntry: [Id, JoinClause] = [ |
| 436 | joinedTableId, |
| 437 | [ |
| 438 | joinedTableId, |
| 439 | fromJoinAlias, |
| 440 | isFunction(onArg) ? onArg : (getCell) => getCell(onArg as Id), |
| 441 | [], |
| 442 | mapNew(), |
| 443 | isTrue(arg1) ? getResultStore(joinedTableId) : store, |
| 444 | ] as JoinClause, |
| 445 | ]; |
| 446 | arrayPush(joinEntries, joinEntry); |
| 447 | return {as: (joinedTableId: Id) => (joinEntry[0] = joinedTableId)}; |
| 448 | }; |
| 449 | |
| 450 | const where = ( |
| 451 | arg1: true | Id | ((getTableCell: GetTableCell) => boolean), |
searching dependent graphs…