Skip to content

Commit eb529c7

Browse files
style(lib): use optional type in places where it makes sense semantically (#48)
1 parent 01b22ce commit eb529c7

File tree

2 files changed

+40
-39
lines changed

2 files changed

+40
-39
lines changed

src/operations/splices.d.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ type SubConcur = {
378378
* @category Splices
379379
* @since v0.0.1
380380
*/
381-
export const first: <Value>(iterable: Iterable<Value>) => Iterable<Value>
381+
export const first: <Value>(iterable: Iterable<Value>) => Optional<Value>
382382

383383
/**
384384
* Returns an async iterable containing the first value of `asyncIterable`, or
@@ -401,7 +401,7 @@ export const first: <Value>(iterable: Iterable<Value>) => Iterable<Value>
401401
*/
402402
export const firstAsync: <Value>(
403403
asyncIterable: AsyncIterable<Value>,
404-
) => AsyncIterable<Value>
404+
) => AsyncOptional<Value>
405405

406406
/**
407407
* Returns a concur iterable containing the first value of `concurIterable`, or
@@ -424,7 +424,7 @@ export const firstAsync: <Value>(
424424
*/
425425
export const firstConcur: <Value>(
426426
concurIterable: ConcurIterable<Value>,
427-
) => ConcurIterable<Value>
427+
) => ConcurOptional<Value>
428428

429429
/**
430430
* Returns an iterable containing the last value of `iterable`, or an empty
@@ -445,7 +445,7 @@ export const firstConcur: <Value>(
445445
* @category Splices
446446
* @since v0.0.1
447447
*/
448-
export const last: <Value>(iterable: Iterable<Value>) => Iterable<Value>
448+
export const last: <Value>(iterable: Iterable<Value>) => Optional<Value>
449449

450450
/**
451451
* Returns an async iterable containing the last value of `asyncIterable`, or
@@ -468,7 +468,7 @@ export const last: <Value>(iterable: Iterable<Value>) => Iterable<Value>
468468
*/
469469
export const lastAsync: <Value>(
470470
asyncIterable: AsyncIterable<Value>,
471-
) => AsyncIterable<Value>
471+
) => AsyncOptional<Value>
472472

473473
/**
474474
* Returns a concur iterable containing the last value of `concurIterable`, or
@@ -491,7 +491,7 @@ export const lastAsync: <Value>(
491491
*/
492492
export const lastConcur: <Value>(
493493
concurIterable: ConcurIterable<Value>,
494-
) => ConcurIterable<Value>
494+
) => ConcurOptional<Value>
495495

496496
/**
497497
* Returns an iterable containing the values of `iterable` between `start` and

src/operations/statistics.d.ts

+34-33
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { MaybePromiseLike } from '../internal/types.js'
22
import type { ConcurIterable } from './core.js'
3+
import type { AsyncOptional, ConcurOptional, Optional } from './optionals.js'
34
import type {
45
AsyncOptionalReducer,
56
OptionalReducer,
@@ -281,8 +282,8 @@ type ToMinOrMaxBy = <Value>(fn: Compare<Value>) => OptionalReducer<Value>
281282

282283
/** @internal */
283284
type MinOrMaxBy = {
284-
<Value>(fn: Compare<Value>, iterable: Iterable<Value>): Iterable<Value>
285-
<Value>(fn: Compare<Value>): (iterable: Iterable<Value>) => Iterable<Value>
285+
<Value>(fn: Compare<Value>, iterable: Iterable<Value>): Optional<Value>
286+
<Value>(fn: Compare<Value>): (iterable: Iterable<Value>) => Optional<Value>
286287
}
287288

288289
/** @internal */
@@ -295,21 +296,21 @@ type MinOrMaxByAsync = {
295296
<Value>(
296297
fn: AsyncCompare<Value>,
297298
asyncIterable: AsyncIterable<Value>,
298-
): AsyncIterable<Value>
299+
): AsyncOptional<Value>
299300
<Value>(
300301
fn: AsyncCompare<Value>,
301-
): (asyncIterable: AsyncIterable<Value>) => AsyncIterable<Value>
302+
): (asyncIterable: AsyncIterable<Value>) => AsyncOptional<Value>
302303
}
303304

304305
/** @internal */
305306
type MinOrMaxByConcur = {
306307
<Value>(
307308
fn: AsyncCompare<Value>,
308309
concurIterable: ConcurIterable<Value>,
309-
): ConcurIterable<Value>
310+
): ConcurOptional<Value>
310311
<Value>(
311312
fn: AsyncCompare<Value>,
312-
): (concurIterable: ConcurIterable<Value>) => ConcurIterable<Value>
313+
): (concurIterable: ConcurIterable<Value>) => ConcurOptional<Value>
313314
}
314315

315316
/**
@@ -569,10 +570,10 @@ export const minMaxBy: {
569570
<Value>(
570571
fn: Compare<Value>,
571572
iterable: Iterable<Value>,
572-
): Iterable<MinMax<Value>>
573+
): Optional<MinMax<Value>>
573574
<Value>(
574575
fn: Compare<Value>,
575-
): (iterable: Iterable<Value>) => Iterable<MinMax<Value>>
576+
): (iterable: Iterable<Value>) => Optional<MinMax<Value>>
576577
}
577578

578579
/**
@@ -614,10 +615,10 @@ export const minMaxByAsync: {
614615
<Value>(
615616
fn: AsyncCompare<Value>,
616617
asyncIterable: AsyncIterable<Value>,
617-
): AsyncIterable<MinMax<Value>>
618+
): AsyncOptional<MinMax<Value>>
618619
<Value>(
619620
fn: AsyncCompare<Value>,
620-
): (asyncIterable: AsyncIterable<Value>) => AsyncIterable<MinMax<Value>>
621+
): (asyncIterable: AsyncIterable<Value>) => AsyncOptional<MinMax<Value>>
621622
}
622623

623624
/**
@@ -645,10 +646,10 @@ export const minMaxByConcur: {
645646
<Value>(
646647
fn: (left: Value, right: Value) => MaybePromiseLike<number>,
647648
concurIterable: ConcurIterable<Value>,
648-
): ConcurIterable<MinMax<Value>>
649+
): ConcurOptional<MinMax<Value>>
649650
<Value>(
650651
fn: (left: Value, right: Value) => MaybePromiseLike<number>,
651-
): (concurIterable: ConcurIterable<Value>) => ConcurIterable<MinMax<Value>>
652+
): (concurIterable: ConcurIterable<Value>) => ConcurOptional<MinMax<Value>>
652653
}
653654

654655
/** @internal */
@@ -661,10 +662,10 @@ type MinOrMaxWith = {
661662
<Value>(
662663
fn: (value: Value) => number,
663664
iterable: Iterable<Value>,
664-
): Iterable<Value>
665+
): Optional<Value>
665666
<Value>(
666667
fn: (value: Value) => number,
667-
): (iterable: Iterable<Value>) => Iterable<Value>
668+
): (iterable: Iterable<Value>) => Optional<Value>
668669
}
669670

670671
/** @internal */
@@ -677,21 +678,21 @@ type MinOrMaxWithAsync = {
677678
<Value>(
678679
fn: (value: Value) => MaybePromiseLike<number>,
679680
asyncIterable: AsyncIterable<Value>,
680-
): AsyncIterable<Value>
681+
): AsyncOptional<Value>
681682
<Value>(
682683
fn: (value: Value) => MaybePromiseLike<number>,
683-
): (asyncIterable: AsyncIterable<Value>) => AsyncIterable<Value>
684+
): (asyncIterable: AsyncIterable<Value>) => AsyncOptional<Value>
684685
}
685686

686687
/** @internal */
687688
type MinOrMaxWithConcur = {
688689
<Value>(
689690
fn: (value: Value) => MaybePromiseLike<number>,
690691
concurIterable: ConcurIterable<Value>,
691-
): ConcurIterable<Value>
692+
): ConcurOptional<Value>
692693
<Value>(
693694
fn: (value: Value) => MaybePromiseLike<number>,
694-
): (concurIterable: ConcurIterable<Value>) => ConcurIterable<Value>
695+
): (concurIterable: ConcurIterable<Value>) => ConcurOptional<Value>
695696
}
696697

697698
/**
@@ -958,10 +959,10 @@ export const minMaxWith: {
958959
<Value>(
959960
fn: (value: Value) => number,
960961
iterable: Iterable<Value>,
961-
): Iterable<MinMax<Value>>
962+
): Optional<MinMax<Value>>
962963
<Value>(
963964
fn: (value: Value) => number,
964-
): (iterable: Iterable<Value>) => Iterable<MinMax<Value>>
965+
): (iterable: Iterable<Value>) => Optional<MinMax<Value>>
965966
}
966967

967968
/**
@@ -1004,10 +1005,10 @@ export const minMaxWithAsync: {
10041005
<Value>(
10051006
fn: (value: Value) => MaybePromiseLike<number>,
10061007
asyncIterable: AsyncIterable<Value>,
1007-
): AsyncIterable<MinMax<Value>>
1008+
): AsyncOptional<MinMax<Value>>
10081009
<Value>(
10091010
fn: (value: Value) => MaybePromiseLike<number>,
1010-
): (asyncIterable: AsyncIterable<Value>) => AsyncIterable<MinMax<Value>>
1011+
): (asyncIterable: AsyncIterable<Value>) => AsyncOptional<MinMax<Value>>
10111012
}
10121013

10131014
/**
@@ -1035,10 +1036,10 @@ export const minMaxWithConcur: {
10351036
<Value>(
10361037
fn: (value: Value) => MaybePromiseLike<number>,
10371038
concurIterable: ConcurIterable<Value>,
1038-
): ConcurIterable<MinMax<Value>>
1039+
): ConcurOptional<MinMax<Value>>
10391040
<Value>(
10401041
fn: (value: Value) => MaybePromiseLike<number>,
1041-
): (concurIterable: ConcurIterable<Value>) => ConcurIterable<MinMax<Value>>
1042+
): (concurIterable: ConcurIterable<Value>) => ConcurOptional<MinMax<Value>>
10421043
}
10431044

10441045
/**
@@ -1077,7 +1078,7 @@ export const toMin: () => OptionalReducer<number>
10771078
* @category Statistics
10781079
* @since v0.0.1
10791080
*/
1080-
export const min: (iterable: Iterable<number>) => Iterable<number>
1081+
export const min: (iterable: Iterable<number>) => Optional<number>
10811082

10821083
/**
10831084
* Returns an async iterable containing a minimum value of `asyncIterable` if
@@ -1095,7 +1096,7 @@ export const min: (iterable: Iterable<number>) => Iterable<number>
10951096
*/
10961097
export const minAsync: (
10971098
asyncIterable: AsyncIterable<number>,
1098-
) => AsyncIterable<number>
1099+
) => AsyncOptional<number>
10991100

11001101
/**
11011102
* Returns a concur iterable containing a minimum value of `concurIterable` if
@@ -1113,7 +1114,7 @@ export const minAsync: (
11131114
*/
11141115
export const minConcur: (
11151116
concurIterable: ConcurIterable<number>,
1116-
) => ConcurIterable<number>
1117+
) => ConcurOptional<number>
11171118

11181119
/**
11191120
* Returns an optional reducer that finds the maximum value of the values it
@@ -1151,7 +1152,7 @@ export const toMax: () => OptionalReducer<number>
11511152
* @category Statistics
11521153
* @since v0.0.1
11531154
*/
1154-
export const max: (iterable: Iterable<number>) => Iterable<number>
1155+
export const max: (iterable: Iterable<number>) => Optional<number>
11551156

11561157
/**
11571158
* Returns an async iterable containing a maximum value of `asyncIterable` if
@@ -1169,7 +1170,7 @@ export const max: (iterable: Iterable<number>) => Iterable<number>
11691170
*/
11701171
export const maxAsync: (
11711172
asyncIterable: AsyncIterable<number>,
1172-
) => AsyncIterable<number>
1173+
) => AsyncOptional<number>
11731174

11741175
/**
11751176
* Returns a concur iterable containing a maximum value of `concurIterable` if
@@ -1187,7 +1188,7 @@ export const maxAsync: (
11871188
*/
11881189
export const maxConcur: (
11891190
concurIterable: ConcurIterable<number>,
1190-
) => ConcurIterable<number>
1191+
) => ConcurOptional<number>
11911192

11921193
/**
11931194
* Returns an optional reducer that finds the {@link MinMax} value of the values
@@ -1226,7 +1227,7 @@ export const toMinMax: () => OptionalReducer<MinMax<number>>
12261227
* @category Statistics
12271228
* @since v0.0.2
12281229
*/
1229-
export const minMax: (iterable: Iterable<number>) => Iterable<MinMax<number>>
1230+
export const minMax: (iterable: Iterable<number>) => Optional<MinMax<number>>
12301231

12311232
/**
12321233
* Returns an async iterable containing a {@link MinMax} value of
@@ -1244,7 +1245,7 @@ export const minMax: (iterable: Iterable<number>) => Iterable<MinMax<number>>
12441245
*/
12451246
export const minMaxAsync: (
12461247
asyncIterable: AsyncIterable<number>,
1247-
) => AsyncIterable<MinMax<number>>
1248+
) => AsyncOptional<MinMax<number>>
12481249

12491250
/**
12501251
* Returns a concur iterable containing a {@link MinMax} value of
@@ -1262,4 +1263,4 @@ export const minMaxAsync: (
12621263
*/
12631264
export const minMaxConcur: (
12641265
concurIterable: ConcurIterable<number>,
1265-
) => ConcurIterable<MinMax<number>>
1266+
) => ConcurOptional<MinMax<number>>

0 commit comments

Comments
 (0)