Skip to content

Commit 3f8a300

Browse files
committed
fix@issue #466 missing r.pipe and r.compose high arity typings
1 parent 2eda196 commit 3f8a300

File tree

9 files changed

+527
-59
lines changed

9 files changed

+527
-59
lines changed

README.md

Lines changed: 264 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -583,9 +583,9 @@ export function all(predicate, list){
583583
<summary><strong>Tests</strong></summary>
584584

585585
```javascript
586-
import {all} from './all'
586+
import { all } from './all'
587587

588-
const numArr = [0, 1, 2, 3, 4]
588+
const numArr = [ 0, 1, 2, 3, 4 ]
589589

590590
test('when true', () => {
591591
const fn = x => x > -1
@@ -606,9 +606,9 @@ test('pass index as second argument', () => {
606606

607607
return x > 5
608608
}
609-
all(fn, [10, 12, 14])
609+
all(fn, [ 10, 12, 14 ])
610610

611-
expect(indexes).toEqual([0, 1, 2])
611+
expect(indexes).toEqual([ 0, 1, 2 ])
612612
})
613613
```
614614

@@ -2819,6 +2819,43 @@ compose<T1>(fn0: () => T1): () => T1;
28192819
compose<V0, T1>(fn0: (x0: V0) => T1): (x0: V0) => T1;
28202820
compose<V0, V1, T1>(fn0: (x0: V0, x1: V1) => T1): (x0: V0, x1: V1) => T1;
28212821
compose<V0, V1, V2, T1>(fn0: (x0: V0, x1: V1, x2: V2) => T1): (x0: V0, x1: V1, x2: V2) => T1;
2822+
2823+
compose<T1, T2>(fn1: (x: T1) => T2, fn0: () => T1): () => T2;
2824+
compose<V0, T1, T2>(fn1: (x: T1) => T2, fn0: (x0: V0) => T1): (x0: V0) => T2;
2825+
compose<V0, V1, T1, T2>(fn1: (x: T1) => T2, fn0: (x0: V0, x1: V1) => T1): (x0: V0, x1: V1) => T2;
2826+
compose<V0, V1, V2, T1, T2>(fn1: (x: T1) => T2, fn0: (x0: V0, x1: V1, x2: V2) => T1): (x0: V0, x1: V1, x2: V2) => T2;
2827+
2828+
compose<T1, T2, T3>(fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: () => T1): () => T3;
2829+
compose<V0, T1, T2, T3>(fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: (x: V0) => T1): (x: V0) => T3;
2830+
compose<V0, V1, T1, T2, T3>(fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: (x0: V0, x1: V1) => T1): (x0: V0, x1: V1) => T3;
2831+
compose<V0, V1, V2, T1, T2, T3>(fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: (x0: V0, x1: V1, x2: V2) => T1): (x0: V0, x1: V1, x2: V2) => T3;
2832+
2833+
compose<T1, T2, T3, T4>(fn3: (x: T3) => T4, fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: () => T1): () => T4;
2834+
compose<V0, T1, T2, T3, T4>(fn3: (x: T3) => T4, fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: (x: V0) => T1): (x: V0) => T4;
2835+
compose<V0, V1, T1, T2, T3, T4>(fn3: (x: T3) => T4, fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: (x0: V0, x1: V1) => T1): (x0: V0, x1: V1) => T4;
2836+
compose<V0, V1, V2, T1, T2, T3, T4>(fn3: (x: T3) => T4, fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: (x0: V0, x1: V1, x2: V2) => T1): (x0: V0, x1: V1, x2: V2) => T4;
2837+
2838+
compose<T1, T2, T3, T4, T5>(fn4: (x: T4) => T5, fn3: (x: T3) => T4, fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: () => T1): () => T5;
2839+
compose<V0, T1, T2, T3, T4, T5>(fn4: (x: T4) => T5, fn3: (x: T3) => T4, fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: (x: V0) => T1): (x: V0) => T5;
2840+
compose<V0, V1, T1, T2, T3, T4, T5>(fn4: (x: T4) => T5, fn3: (x: T3) => T4, fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: (x0: V0, x1: V1) => T1): (x0: V0, x1: V1) => T5;
2841+
compose<V0, V1, V2, T1, T2, T3, T4, T5>(fn4: (x: T4) => T5, fn3: (x: T3) => T4, fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: (x0: V0, x1: V1, x2: V2) => T1): (x0: V0, x1: V1, x2: V2) => T5;
2842+
2843+
compose<T1, T2, T3, T4, T5, T6>(fn5: (x: T5) => T6, fn4: (x: T4) => T5, fn3: (x: T3) => T4, fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: () => T1): () => T6;
2844+
compose<V0, T1, T2, T3, T4, T5, T6>(fn5: (x: T5) => T6, fn4: (x: T4) => T5, fn3: (x: T3) => T4, fn2: (x: T2) => T3, fn1: (x: T1) => T2, fn0: (x: V0) => T1): (x: V0) => T6;
2845+
compose<V0, V1, T1, T2, T3, T4, T5, T6>(
2846+
fn5: (x: T5) => T6,
2847+
fn4: (x: T4) => T5,
2848+
fn3: (x: T3) => T4,
2849+
fn2: (x: T2) => T3,
2850+
fn1: (x: T1) => T2,
2851+
fn0: (x0: V0, x1: V1) => T1): (x0: V0, x1: V1) => T6;
2852+
compose<V0, V1, V2, T1, T2, T3, T4, T5, T6>(
2853+
fn5: (x: T5) => T6,
2854+
fn4: (x: T4) => T5,
2855+
fn3: (x: T3) => T4,
2856+
fn2: (x: T2) => T3,
2857+
fn1: (x: T1) => T2,
2858+
fn0: (x0: V0, x1: V1, x2: V2) => T1): (x0: V0, x1: V1, x2: V2) => T6;
28222859
```
28232860

28242861
</details>
@@ -6341,8 +6378,8 @@ forEach<T>(fn: (value: T, key: string, obj: { [key: string]: T }) => void): (obj
63416378
<summary><strong>R.forEach</strong> source</summary>
63426379

63436380
```javascript
6344-
import {_isArray} from './_internals/_isArray'
6345-
import {_keys} from './_internals/_keys'
6381+
import { _isArray } from './_internals/_isArray'
6382+
import { _keys } from './_internals/_keys'
63466383

63476384
export function forEach(fn, list){
63486385
if (arguments.length === 1) return _list => forEach(fn, _list)
@@ -6351,12 +6388,14 @@ export function forEach(fn, list){
63516388
return
63526389
}
63536390

6354-
if (_isArray(list)) {
6391+
if (_isArray(list)){
63556392
let index = 0
63566393
const len = list.length
63576394

63586395
while (index < len){
6359-
fn(list[ index ], index, list)
6396+
fn(
6397+
list[ index ], index, list
6398+
)
63606399
index++
63616400
}
63626401
} else {
@@ -6366,7 +6405,9 @@ export function forEach(fn, list){
63666405

63676406
while (index < len){
63686407
const key = keys[ index ]
6369-
fn(list[ key ], key, list)
6408+
fn(
6409+
list[ key ], key, list
6410+
)
63706411
index++
63716412
}
63726413
}
@@ -9550,25 +9591,29 @@ export function map(fn, list){
95509591
const willReturn = Array(len)
95519592

95529593
while (index < len){
9553-
willReturn[ index ] = fn(list[ index ], index, list)
9594+
willReturn[ index ] = fn(
9595+
list[ index ], index, list
9596+
)
95549597
index++
95559598
}
95569599

95579600
return willReturn
9558-
} else {
9559-
let index = 0
9560-
const keys = _keys(list)
9561-
const len = keys.length
9562-
const willReturn = {}
9563-
9564-
while (index < len){
9565-
const key = keys[ index ]
9566-
willReturn[ key ] = fn(list[ key ], key, list)
9567-
index++
9568-
}
9601+
}
9602+
let index = 0
9603+
const keys = _keys(list)
9604+
const len = keys.length
9605+
const willReturn = {}
95699606

9570-
return willReturn
9607+
while (index < len){
9608+
const key = keys[ index ]
9609+
willReturn[ key ] = fn(
9610+
list[ key ], key, list
9611+
)
9612+
index++
95719613
}
9614+
9615+
return willReturn
9616+
95729617
}
95739618
```
95749619

@@ -12000,6 +12045,193 @@ pipe<T1>(fn0: () => T1): () => T1;
1200012045
pipe<V0, T1>(fn0: (x0: V0) => T1): (x0: V0) => T1;
1200112046
pipe<V0, V1, T1>(fn0: (x0: V0, x1: V1) => T1): (x0: V0, x1: V1) => T1;
1200212047
pipe<V0, V1, V2, T1>(fn0: (x0: V0, x1: V1, x2: V2) => T1): (x0: V0, x1: V1, x2: V2) => T1;
12048+
12049+
pipe<T1, T2>(fn0: () => T1, fn1: (x: T1) => T2): () => T2;
12050+
pipe<V0, T1, T2>(fn0: (x0: V0) => T1, fn1: (x: T1) => T2): (x0: V0) => T2;
12051+
pipe<V0, V1, T1, T2>(fn0: (x0: V0, x1: V1) => T1, fn1: (x: T1) => T2): (x0: V0, x1: V1) => T2;
12052+
pipe<V0, V1, V2, T1, T2>(fn0: (x0: V0, x1: V1, x2: V2) => T1, fn1: (x: T1) => T2): (x0: V0, x1: V1, x2: V2) => T2;
12053+
12054+
pipe<T1, T2, T3>(fn0: () => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3): () => T3;
12055+
pipe<V0, T1, T2, T3>(fn0: (x: V0) => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3): (x: V0) => T3;
12056+
pipe<V0, V1, T1, T2, T3>(fn0: (x0: V0, x1: V1) => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3): (x0: V0, x1: V1) => T3;
12057+
pipe<V0, V1, V2, T1, T2, T3>(fn0: (x0: V0, x1: V1, x2: V2) => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3): (x0: V0, x1: V1, x2: V2) => T3;
12058+
12059+
pipe<T1, T2, T3, T4>(fn0: () => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3, fn3: (x: T3) => T4): () => T4;
12060+
pipe<V0, T1, T2, T3, T4>(fn0: (x: V0) => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3, fn3: (x: T3) => T4): (x: V0) => T4;
12061+
pipe<V0, V1, T1, T2, T3, T4>(fn0: (x0: V0, x1: V1) => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3, fn3: (x: T3) => T4): (x0: V0, x1: V1) => T4;
12062+
pipe<V0, V1, V2, T1, T2, T3, T4>(fn0: (x0: V0, x1: V1, x2: V2) => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3, fn3: (x: T3) => T4): (x0: V0, x1: V1, x2: V2) => T4;
12063+
12064+
pipe<T1, T2, T3, T4, T5>(fn0: () => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3, fn3: (x: T3) => T4, fn4: (x: T4) => T5): () => T5;
12065+
pipe<V0, T1, T2, T3, T4, T5>(fn0: (x: V0) => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3, fn3: (x: T3) => T4, fn4: (x: T4) => T5): (x: V0) => T5;
12066+
pipe<V0, V1, T1, T2, T3, T4, T5>(fn0: (x0: V0, x1: V1) => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3, fn3: (x: T3) => T4, fn4: (x: T4) => T5): (x0: V0, x1: V1) => T5;
12067+
pipe<V0, V1, V2, T1, T2, T3, T4, T5>(fn0: (x0: V0, x1: V1, x2: V2) => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3, fn3: (x: T3) => T4, fn4: (x: T4) => T5): (x0: V0, x1: V1, x2: V2) => T5;
12068+
12069+
pipe<T1, T2, T3, T4, T5, T6>(fn0: () => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3, fn3: (x: T3) => T4, fn4: (x: T4) => T5, fn5: (x: T5) => T6): () => T6;
12070+
pipe<V0, T1, T2, T3, T4, T5, T6>(fn0: (x: V0) => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3, fn3: (x: T3) => T4, fn4: (x: T4) => T5, fn5: (x: T5) => T6): (x: V0) => T6;
12071+
pipe<V0, V1, T1, T2, T3, T4, T5, T6>(fn0: (x0: V0, x1: V1) => T1, fn1: (x: T1) => T2, fn2: (x: T2) => T3, fn3: (x: T3) => T4, fn4: (x: T4) => T5, fn5: (x: T5) => T6): (x0: V0, x1: V1) => T6;
12072+
pipe<V0, V1, V2, T1, T2, T3, T4, T5, T6>(
12073+
fn0: (x0: V0, x1: V1, x2: V2) => T1,
12074+
fn1: (x: T1) => T2,
12075+
fn2: (x: T2) => T3,
12076+
fn3: (x: T3) => T4,
12077+
fn4: (x: T4) => T5,
12078+
fn5: (x: T5) => T6): (x0: V0, x1: V1, x2: V2) => T6;
12079+
12080+
pipe<T1, T2, T3, T4, T5, T6, T7>(
12081+
fn0: () => T1,
12082+
fn1: (x: T1) => T2,
12083+
fn2: (x: T2) => T3,
12084+
fn3: (x: T3) => T4,
12085+
fn4: (x: T4) => T5,
12086+
fn5: (x: T5) => T6,
12087+
fn: (x: T6) => T7): () => T7;
12088+
pipe<V0, T1, T2, T3, T4, T5, T6, T7>(
12089+
fn0: (x: V0) => T1,
12090+
fn1: (x: T1) => T2,
12091+
fn2: (x: T2) => T3,
12092+
fn3: (x: T3) => T4,
12093+
fn4: (x: T4) => T5,
12094+
fn5: (x: T5) => T6,
12095+
fn: (x: T6) => T7): (x: V0) => T7;
12096+
pipe<V0, V1, T1, T2, T3, T4, T5, T6, T7>(
12097+
fn0: (x0: V0, x1: V1) => T1,
12098+
fn1: (x: T1) => T2,
12099+
fn2: (x: T2) => T3,
12100+
fn3: (x: T3) => T4,
12101+
fn4: (x: T4) => T5,
12102+
fn5: (x: T5) => T6,
12103+
fn6: (x: T6) => T7): (x0: V0, x1: V1) => T7;
12104+
pipe<V0, V1, V2, T1, T2, T3, T4, T5, T6, T7>(
12105+
fn0: (x0: V0, x1: V1, x2: V2) => T1,
12106+
fn1: (x: T1) => T2,
12107+
fn2: (x: T2) => T3,
12108+
fn3: (x: T3) => T4,
12109+
fn4: (x: T4) => T5,
12110+
fn5: (x: T5) => T6,
12111+
fn6: (x: T6) => T7): (x0: V0, x1: V1, x2: V2) => T7;
12112+
12113+
pipe<T1, T2, T3, T4, T5, T6, T7, T8>(
12114+
fn0: () => T1,
12115+
fn1: (x: T1) => T2,
12116+
fn2: (x: T2) => T3,
12117+
fn3: (x: T3) => T4,
12118+
fn4: (x: T4) => T5,
12119+
fn5: (x: T5) => T6,
12120+
fn6: (x: T6) => T7,
12121+
fn: (x: T7) => T8): () => T8;
12122+
pipe<V0, T1, T2, T3, T4, T5, T6, T7, T8>(
12123+
fn0: (x: V0) => T1,
12124+
fn1: (x: T1) => T2,
12125+
fn2: (x: T2) => T3,
12126+
fn3: (x: T3) => T4,
12127+
fn4: (x: T4) => T5,
12128+
fn5: (x: T5) => T6,
12129+
fn6: (x: T6) => T7,
12130+
fn: (x: T7) => T8): (x: V0) => T8;
12131+
pipe<V0, V1, T1, T2, T3, T4, T5, T6, T7, T8>(
12132+
fn0: (x0: V0, x1: V1) => T1,
12133+
fn1: (x: T1) => T2,
12134+
fn2: (x: T2) => T3,
12135+
fn3: (x: T3) => T4,
12136+
fn4: (x: T4) => T5,
12137+
fn5: (x: T5) => T6,
12138+
fn6: (x: T6) => T7,
12139+
fn7: (x: T7) => T8): (x0: V0, x1: V1) => T8;
12140+
pipe<V0, V1, V2, T1, T2, T3, T4, T5, T6, T7, T8>(
12141+
fn0: (x0: V0, x1: V1, x2: V2) => T1,
12142+
fn1: (x: T1) => T2,
12143+
fn2: (x: T2) => T3,
12144+
fn3: (x: T3) => T4,
12145+
fn4: (x: T4) => T5,
12146+
fn5: (x: T5) => T6,
12147+
fn6: (x: T6) => T7,
12148+
fn7: (x: T7) => T8): (x0: V0, x1: V1, x2: V2) => T8;
12149+
12150+
pipe<T1, T2, T3, T4, T5, T6, T7, T8, T9>(
12151+
fn0: () => T1,
12152+
fn1: (x: T1) => T2,
12153+
fn2: (x: T2) => T3,
12154+
fn3: (x: T3) => T4,
12155+
fn4: (x: T4) => T5,
12156+
fn5: (x: T5) => T6,
12157+
fn6: (x: T6) => T7,
12158+
fn7: (x: T7) => T8,
12159+
fn8: (x: T8) => T9): () => T9;
12160+
pipe<V0, T1, T2, T3, T4, T5, T6, T7, T8, T9>(
12161+
fn0: (x0: V0) => T1,
12162+
fn1: (x: T1) => T2,
12163+
fn2: (x: T2) => T3,
12164+
fn3: (x: T3) => T4,
12165+
fn4: (x: T4) => T5,
12166+
fn5: (x: T5) => T6,
12167+
fn6: (x: T6) => T7,
12168+
fn7: (x: T7) => T8,
12169+
fn8: (x: T8) => T9): (x0: V0) => T9;
12170+
pipe<V0, V1, T1, T2, T3, T4, T5, T6, T7, T8, T9>(
12171+
fn0: (x0: V0, x1: V1) => T1,
12172+
fn1: (x: T1) => T2,
12173+
fn2: (x: T2) => T3,
12174+
fn3: (x: T3) => T4,
12175+
fn4: (x: T4) => T5,
12176+
fn5: (x: T5) => T6,
12177+
fn6: (x: T6) => T7,
12178+
fn7: (x: T7) => T8,
12179+
fn8: (x: T8) => T9): (x0: V0, x1: V1) => T9;
12180+
pipe<V0, V1, V2, T1, T2, T3, T4, T5, T6, T7, T8, T9>(
12181+
fn0: (x0: V0, x1: V1, x2: V2) => T1,
12182+
fn1: (x: T1) => T2,
12183+
fn2: (x: T2) => T3,
12184+
fn3: (x: T3) => T4,
12185+
fn4: (x: T4) => T5,
12186+
fn5: (x: T5) => T6,
12187+
fn6: (x: T6) => T7,
12188+
fn7: (x: T7) => T8,
12189+
fn8: (x: T8) => T9): (x0: V0, x1: V1, x2: V2) => T9;
12190+
12191+
pipe<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(
12192+
fn0: () => T1,
12193+
fn1: (x: T1) => T2,
12194+
fn2: (x: T2) => T3,
12195+
fn3: (x: T3) => T4,
12196+
fn4: (x: T4) => T5,
12197+
fn5: (x: T5) => T6,
12198+
fn6: (x: T6) => T7,
12199+
fn7: (x: T7) => T8,
12200+
fn8: (x: T8) => T9,
12201+
fn9: (x: T9) => T10): () => T10;
12202+
pipe<V0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(
12203+
fn0: (x0: V0) => T1,
12204+
fn1: (x: T1) => T2,
12205+
fn2: (x: T2) => T3,
12206+
fn3: (x: T3) => T4,
12207+
fn4: (x: T4) => T5,
12208+
fn5: (x: T5) => T6,
12209+
fn6: (x: T6) => T7,
12210+
fn7: (x: T7) => T8,
12211+
fn8: (x: T8) => T9,
12212+
fn9: (x: T9) => T10): (x0: V0) => T10;
12213+
pipe<V0, V1, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(
12214+
fn0: (x0: V0, x1: V1) => T1,
12215+
fn1: (x: T1) => T2,
12216+
fn2: (x: T2) => T3,
12217+
fn3: (x: T3) => T4,
12218+
fn4: (x: T4) => T5,
12219+
fn5: (x: T5) => T6,
12220+
fn6: (x: T6) => T7,
12221+
fn7: (x: T7) => T8,
12222+
fn8: (x: T8) => T9,
12223+
fn9: (x: T9) => T10): (x0: V0, x1: V1) => T10;
12224+
pipe<V0, V1, V2, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(
12225+
fn0: (x0: V0, x1: V1, x2: V2) => T1,
12226+
fn1: (x: T1) => T2,
12227+
fn2: (x: T2) => T3,
12228+
fn3: (x: T3) => T4,
12229+
fn4: (x: T4) => T5,
12230+
fn5: (x: T5) => T6,
12231+
fn6: (x: T6) => T7,
12232+
fn7: (x: T7) => T8,
12233+
fn8: (x: T8) => T9,
12234+
fn9: (x: T9) => T10): (x0: V0, x1: V1, x2: V2) => T10;
1200312235
```
1200412236

1200512237
</details>
@@ -12899,9 +13131,9 @@ reduce<T, TResult>(reducer: (prev: TResult, current: T, i?: number) => TResult,
1289913131
<summary><strong>R.reduce</strong> source</summary>
1290013132

1290113133
```javascript
12902-
import { curry } from './curry'
1290313134
import { _isArray } from './_internals/_isArray'
1290413135
import { _keys } from './_internals/_keys'
13136+
import { curry } from './curry'
1290513137

1290613138
function reduceFn(
1290713139
reducer, acc, list
@@ -12915,7 +13147,9 @@ function reduceFn(
1291513147
const len = list.length
1291613148

1291713149
while (index < len){
12918-
acc = reducer(acc, list[ index ], index, list)
13150+
acc = reducer(
13151+
acc, list[ index ], index, list
13152+
)
1291913153
index++
1292013154
}
1292113155
} else {
@@ -12925,7 +13159,9 @@ function reduceFn(
1292513159

1292613160
while (index < len){
1292713161
const key = keys[ index ]
12928-
acc = reducer(acc, key, list[ key ], list)
13162+
acc = reducer(
13163+
acc, key, list[ key ], list
13164+
)
1292913165
index++
1293013166
}
1293113167
}
@@ -16827,7 +17063,9 @@ Add `R.where`
1682717063
Add `R.unless`
1682817064
Add `R.pathEq`
1682917065

16830-
- Next
17066+
- 5.6.3
17067+
17068+
- Fix missing high arity typings for `R.compose/pipe`
1683117069

1683217070
- `R.merge` definitions match those of `@types/ramda`
1683317071

0 commit comments

Comments
 (0)