(
subset: { offset?: number; limit?: number },
superset: { offset?: number; limit?: number },
)
| 811 | * @returns true if subset range is fully contained within superset range |
| 812 | */ |
| 813 | export function isOffsetLimitSubset( |
| 814 | subset: { offset?: number; limit?: number }, |
| 815 | superset: { offset?: number; limit?: number }, |
| 816 | ): boolean { |
| 817 | const subsetOffset = subset.offset ?? 0 |
| 818 | const supersetOffset = superset.offset ?? 0 |
| 819 | |
| 820 | // Superset must start at or before subset |
| 821 | if (supersetOffset > subsetOffset) { |
| 822 | return false |
| 823 | } |
| 824 | |
| 825 | // If superset is unlimited, it covers everything from its offset onwards |
| 826 | if (superset.limit === undefined) { |
| 827 | return true |
| 828 | } |
| 829 | |
| 830 | // If subset is unlimited but superset has a limit, subset can't be satisfied |
| 831 | if (subset.limit === undefined) { |
| 832 | return false |
| 833 | } |
| 834 | |
| 835 | // Both have limits - check if subset range is within superset range |
| 836 | const subsetEnd = subsetOffset + subset.limit |
| 837 | const supersetEnd = supersetOffset + superset.limit |
| 838 | |
| 839 | return subsetEnd <= supersetEnd |
| 840 | } |
| 841 | |
| 842 | /** |
| 843 | * Check if one predicate (where + orderBy + limit + offset) is a subset of another. |
no outgoing calls
no test coverage detected