Skip to main content

Variable: toMultiple()

const toMultiple: {<Value, Reducers>(reducers): Reducer<Value, { -readonly [Key in string | number | symbol]: Reducers[Key] extends RawReducerWithoutFinish<Value, Acc> ? Acc : never }, { -readonly [Key in string | number | symbol]: Reducers[Key] extends RawReducerWithFinish<Value, any, Finished> ? Finished : Reducers[Key] extends RawReducerWithoutFinish<Value, Acc> ? Acc : never }>; <Value, Reducers>(reducers): OptionalReducer<Value, { -readonly [Key in string | number | symbol]: Reducers[Key] extends RawReducerWithFinish<Value, any, Finished> ? Finished : Reducers[Key] extends RawOptionalReducerWithFinish<Value, Finished> ? Finished : Value }>; }

Defined in: collections.d.ts:319

Returns a Reducer or OptionalReducer that reduces values to an object or array of the same shape as reducers using all of the reducers in reducers.

Returns an OptionalReducer if at least one of the input reducers is an OptionalReducer. Otherwise, returns a Reducer.

Call Signature

<Value, Reducers>(reducers): Reducer<Value, { -readonly [Key in string | number | symbol]: Reducers[Key] extends RawReducerWithoutFinish<Value, Acc> ? Acc : never }, { -readonly [Key in string | number | symbol]: Reducers[Key] extends RawReducerWithFinish<Value, any, Finished> ? Finished : Reducers[Key] extends RawReducerWithoutFinish<Value, Acc> ? Acc : never }>

Type Parameters

Value

Value

Reducers

Reducers extends readonly [RawReducerWithoutFinish<Value, any>] | readonly RawReducerWithoutFinish<Value, any>[] | Readonly<Record<PropertyKey, RawReducerWithoutFinish<Value, any>>>

Parameters

reducers

Reducers

Returns

Reducer<Value, { -readonly [Key in string | number | symbol]: Reducers[Key] extends RawReducerWithoutFinish<Value, Acc> ? Acc : never }, { -readonly [Key in string | number | symbol]: Reducers[Key] extends RawReducerWithFinish<Value, any, Finished> ? Finished : Reducers[Key] extends RawReducerWithoutFinish<Value, Acc> ? Acc : never }>

Call Signature

<Value, Reducers>(reducers): OptionalReducer<Value, { -readonly [Key in string | number | symbol]: Reducers[Key] extends RawReducerWithFinish<Value, any, Finished> ? Finished : Reducers[Key] extends RawOptionalReducerWithFinish<Value, Finished> ? Finished : Value }>

Type Parameters

Value

Value

Reducers

Reducers extends readonly [RawReducerWithoutFinish<Value, any> | RawOptionalReducerWithoutFinish<Value> | FunctionReducer<Value>] | readonly (RawReducerWithoutFinish<Value, any> | RawOptionalReducerWithoutFinish<Value> | FunctionReducer<Value>)[] | Readonly<Record<PropertyKey, RawReducerWithoutFinish<Value, any> | RawOptionalReducerWithoutFinish<Value> | FunctionReducer<Value>>>

Parameters

reducers

Reducers

Returns

OptionalReducer<Value, { -readonly [Key in string | number | symbol]: Reducers[Key] extends RawReducerWithFinish<Value, any, Finished> ? Finished : Reducers[Key] extends RawOptionalReducerWithFinish<Value, Finished> ? Finished : Value }>

Example

import { map, pipe, reduce, toCount, toJoin, toMultiple, toSet } from 'lfi'

console.log(
pipe(
[`sloth`, `lazy`, `sleep`],
map(word => word.length),
reduce(toMultiple([toSet(), toCount(), toJoin(`,`)])),
),
)
//=> [
//=> Set(2) { 5, 4 },
//=> 3,
//=> '5,4,5'
//=> ]

console.log(
pipe(
[`sloth`, `lazy`, `sleep`],
map(word => word.length),
reduce(
toMultiple({
set: toSet(),
count: toCount(),
string: toJoin(`,`),
}),
),
),
)
//=> {
//=> set: Set(2) { 5, 4 },
//=> count: 3,
//=> string: '5,4,5'
//=> }
Playground

Since

v2.0.0