Skip to content

Fn

Function utilities for functional programming patterns.

Provides utilities for function composition, currying, partial application, piping, and common functional patterns like identity and constant functions. Includes function analysis tools and endomorphism utilities.

Import

typescript
import { Fn } from '@wollybeard/kit'
typescript
import * as Fn from '@wollybeard/kit/fn'

Basic Functions

[F] constant

typescript
<value>(value: value): () => value

[F] noop

typescript
(): void

[F] $identityPartial

typescript
<value>(value: PartialDeep<value>): value

[F] identity

typescript
(value: $value): $value

[T] identity

typescript
type identity<$Value = any> = <$value extends $Value>(value: $value) => $value

Composition

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value

Pipe a value through a series of unary functions.

Examples:

typescript
const 
add1
= (
x
: number) =>
x
+ 1
const
double
= (
x
: number) =>
x
* 2
const
toString
= (
x
: number) =>
x
.
toString
()
Fn
.pipe(5,
add1
,
double
) // 12
Fn
.pipe(5,
add1
,
double
,
toString
) // "12"

Currying & Binding

[F] bind

typescript
<fn extends AnyAny>(fn: AnyAnyParametersMin1 extends fn ? fn : { Error: "Given function must have at least one parameter"; }, arg: Parameters < fn > [0]): bind<fn>

[T] bind

typescript
type bind<$Fn extends AnyAnyParametersMin1> = $Fn extends
  (...args: [any, ...infer __args_tail__]) => infer __return__
  ? (...args: __args_tail__) => __return__
  : never

[F] applySecond

typescript
<fn extends (...args: any[]) => (arg: any) => any, arg > (fn: fn, arg: arg): applySecond<fn, arg>

Apply the second parameter of a curried function. For a function (a) = (b) = c and a value b, returns (a) = c Useful for creating service interfaces from curried operations.

[T] applySecond

typescript
type applySecond<$Fn, $Arg> = $Fn extends
  (...args: infer __args__) => (arg: $Arg) => infer __return__
  ? (...args: __args__) => __return__
  : never

Apply the second parameter of a curried function. For a function (a) = (b) = c, returns (a) = c Useful for creating service interfaces from curried operations.

[F] curry

typescript
<fn extends AnyAny>(fn: AnyAnyParametersMin1 extends fn ? fn : { Error: "Given function must have at least one parameter"; }): curry<fn>

[T] curry

typescript
type curry<fn extends AnyAny> = fn extends
  (...args: infer __args__) => infer __return__
  ? Curry__Signature<__args__, __return__>
  : never

[F] uncurry

typescript
<fn extends AnyAny2Curried>(fn: fn): uncurry<fn>

[T] uncurry

typescript
type uncurry<$Fn extends AnyAny2Curried> = $Fn extends
  (...args: infer __arg1__) => (...args: infer __arg2__) => infer __return__
  ? (...args: [...__arg1__, ...__arg2__]) => __return__
  : never

[F] flipCurried

typescript
<fn extends AnyAny2Curried>(fn: fn): flipCurried<fn>

[T] flipCurried

typescript
type flipCurried<$Fn extends AnyAny2Curried> = $Fn extends
  (...args: infer __args1__) => (...args: infer __args2__) => infer __return__
  ? (...args: __args2__) => (...args: __args1__) => __return__
  : never

Endomorphisms

[T] endo

typescript
type endo<$T = any> = ($value: $T) => $T

Endomorphism

  • a function from a type to itself.

Unlike identity, this doesn't preserve the exact value, just ensures the output type matches the input type.

Examples:

typescript
// Builder pattern
type 
BuilderOp
=
Fn
.
endo
<
StringBuilder
>
const
addText
:
BuilderOp
=
sb
=>
sb
.append('text')
// Transformations type
StringTransform
=
Fn
.
endo
<string>
const
uppercase
:
StringTransform
=
s
=>
s
.toUpperCase()
const
trim
:
StringTransform
=
s
=>
s
.trim()
// Chainable operations type
ChainOp
=
Fn
.
endo
<
ChainableAPI
>
const
configure
:
ChainOp
=
api
=>
api
.setOption('key', 'value')

[F] endo

typescript
(value: any): any

The identity endomorphism

  • returns the value unchanged. This is both an endomorphism and the identity function.

Examples:

typescript
const 
result
=
Fn
.endo(5) // returns 5
const
obj
= {
a
: 1 }
const
same
=
Fn
.endo(
obj
) // returns the same object reference

Introspection

[U] Parameter

typescript
type Parameter = { type: 'name'; value: string } | {
  type: 'destructured'
  names: string[]
}

[F] analyzeFunction

typescript
(fn: (...args: any[]) => unknown): { body: string; parameters: Parameter[]; }

Parameters:

  • fn - The function to analyze

Returns: An object containing the function's cleaned body and parameters

Throws:

  • Error If the function cannot be parsed or has invalid structure

Analyze a function to extract its parameter information and body.

Parses a function's string representation to extract:

  • Parameter names (both regular and destructured parameters)
  • Function body (both statement and expression forms, trimmed and dedented)

The returned body is already cleaned: leading/trailing whitespace removed and common indentation stripped away for clean display in its isolated form.

Examples:

typescript
const 
fn
= (
a
, {
b
,
c
}) =>
a
+
b
+
c
const
info
=
Fn
.analyzeFunction(
fn
)
// info.parameters: [{ type: 'name', value: 'a' }, { type: 'destructured', names: ['b', 'c'] }] // info.body: "a + b + c" (already trimmed and dedented)

[F] isUnary

typescript
(fn: (...args: any[]) => unknown): boolean

Parameters:

  • fn - The function to check

Returns: True if the function has exactly one parameter, false otherwise

Check if a function is unary (has exactly one parameter).

Examples:

typescript
const 
unary
= (
x
: number) =>
x
* 2
const
binary
= (
a
: number,
b
: number) =>
a
+
b
const
nullary
= () => 42
Fn
.isUnary(
unary
) // true
Fn
.isUnary(
binary
) // false
Fn
.isUnary(
nullary
) // false

Partial Application

[C] _

typescript
typeof _

Symbol used to represent a hole in partial application. When used as an argument, indicates that the parameter should be deferred.

Examples:

typescript
const 
add
= (
a
: number,
b
: number) =>
a
+
b
const
addOne
= partial(
add
, _, 1) // (a: number) => number
addOne
(5) // 6

[T] _

typescript
type _ = typeof _

[F] isHole

typescript
(value: unknown): boolean

Type guard to check if a value is a hole.

[F] partial

typescript
<$Fn extends Fn.AnyAny, $Args extends readonly unknown[] > (fn: $Fn, ...args ?: $Args): any

Parameters:

  • fn - The function to partially apply
  • args - Arguments with holes (_) for deferred parameters

Returns: A new function accepting the remaining arguments, or the result if all arguments are provided

Create a partially applied function by providing some arguments upfront. Use the hole symbol (_) to defer parameters.

Examples:

typescript
// Basic usage
const 
add
= (
a
: number,
b
: number) =>
a
+
b
const
addOne
=
Fn
.partial(
add
, _, 1)
addOne
(5) // 6
// Multiple holes const
greet
= (
greeting
: string,
name
: string,
punctuation
: string) =>
`${
greeting
}, ${
name
}${
punctuation
}`
const
casualGreet
=
Fn
.partial(
greet
, 'Hey', _, '!')
casualGreet
('Alice') // 'Hey, Alice!'
// All arguments provided - executes immediately const
result
=
Fn
.partial(
add
, 1, 2) // 3

[C] apply

typescript
;(<$Fn extends Fn.AnyAny, const $Args extends readonly unknown[]>(
  fn: $Fn,
  ...args: $Args
) => any)

Type-safe partial application with automatic type inference. This is an alias for partial with a more explicit name.

Examples:

typescript
const 
multiply
= (
a
: number,
b
: number,
c
: number) =>
a
*
b
*
c
const
double
=
Fn
.apply(
multiply
, 2, _, 1)
double
(5) // 10

[F] defer

typescript
<$Fn extends Fn.AnyAny>(fn: $Fn, ...args ?: Parameters<$Fn>): () => ReturnType<$Fn>

Helper to create a deferred computation using partial application. Useful for creating thunks or delayed evaluations.

Examples:

typescript
const 
expensiveComputation
= (
a
: number,
b
: number) => {
console
.
log
('Computing...')
return
a
*
b
} const
defer
red
=
Fn
.defer(
expensiveComputation
, 5, 10)
// Nothing logged yet const
result
=
deferred
() // Logs: 'Computing...'
// result: 50

[F] isPartialArg

typescript
(_value: unknown): boolean

Check if a value is potentially a partially applicable argument (either a hole or a regular value).

Type Guards

[C] is

typescript
TypeGuard<AnyAny>

Type Utilities

[T] AnyAny

typescript
type AnyAny = (...args: any[]) => any

[T] AnyAnyParameters2

typescript
type AnyAnyParameters2 = (arg1: any, arg2: any) => any

[T] AnyAnyParametersMin1

typescript
type AnyAnyParametersMin1 = (...args: [any, ...any[]]) => any

[T] AnyAnyParametersMin2

typescript
type AnyAnyParametersMin2 = (...args: [any, any, ...any[]]) => any

[T] AnyAnyParametersMin3

typescript
type AnyAnyParametersMin3 = (...args: [any, any, any, ...any[]]) => any

[T] AnyAnyAsync

typescript
type AnyAnyAsync = (...args: any[]) => Prom.AnyAny

[T] GuardedType

typescript
type GuardedType<$T> = $T extends (x: any) => x is infer __u__ ? __u__ : never

Extract the guarded type from a type guard function.

Examples:

typescript
const 
isString
= (
x
: any):
x
is string => typeof
x
=== 'string'
type
T
=
GuardedType
<typeof
isString
> // string

[T] ReturnExtract

typescript
type ReturnExtract<$Type, $Fn extends AnyAny> = $Fn extends
  (...args: infer __args__) => infer __return__ ? (
    ...args: __args__
  ) => __return__ extends Prom.AnyAny
    ? Promise<Extract<Awaited<__return__>, $Type>>
    : Extract<__return__, $Type>
  : never

Modify function such that it only returns the given type.

Automatically handles async functions by unwrapping the Promise, extracting the type, and rewrapping in a Promise. For sync functions, the type is extracted directly.

Assumes that the given type is among the possible return types of the function.

Examples:

typescript
// Sync function
type 
Fn1
= (
x
: number) => string | number
type
Result1
=
ReturnExtract
<string,
Fn1
> // (x: number) => string
// Async function - automatically unwraps and rewraps Promise type
Fn2
= (
x
: number) =>
Promise
<string | number>
type
Result2
=
ReturnExtract
<string,
Fn2
> // (x: number) => Promise<string>

[T] ReturnReplace

typescript
type ReturnReplace<$Fn extends AnyAny, $Type> = $Fn extends
  (...args: infer __args__) => infer __return__ ? (...args: __args__) => $Type
  : never

[T] ReturnExclude

typescript
type ReturnExclude<$Type, $Fn extends AnyAny> = $Fn extends
  (...args: infer __args__) => infer __return__ ? (
    ...args: __args__
  ) => __return__ extends Prom.AnyAny
    ? Promise<Exclude<Awaited<__return__>, $Type>>
    : Exclude<__return__, $Type>
  : never

Modify function such that it does not return the given type.

Automatically handles async functions by unwrapping the Promise, excluding the type, and rewrapping in a Promise. For sync functions, the type is excluded directly.

If function does not return the given the type, then this is effectively an identity function.

Examples:

typescript
// Sync function
type 
Fn1
= (
x
: number) => string | null
type
Result1
=
ReturnExclude
<null,
Fn1
> // (x: number) => string
// Async function - automatically unwraps and rewraps Promise type
Fn2
= (
x
: number) =>
Promise
<string | null>
type
Result2
=
ReturnExclude
<null,
Fn2
> // (x: number) => Promise<string>

[T] ReturnExcludeNull

typescript
type ReturnExcludeNull<$Fn extends AnyAny> = ReturnExclude<null, $Fn>

[T] ReturnInclude

typescript
type ReturnInclude<$Type, $Fn extends AnyAny> = $Fn extends
  (...args: infer __args__) => infer __return__ ? (
    ...args: __args__
  ) => __return__ extends Prom.AnyAny ? Promise<$Type | Awaited<__return__>>
    : $Type | __return__
  : never

Modify function such that it can return an additional type along with its original return types.

Automatically handles async functions by unwrapping the Promise, adding the type to the union, and rewrapping in a Promise. For sync functions, the type is added directly to the return type union.

This is useful for functions that may return early with a specific type (like void).

Examples:

typescript
// Sync function
type 
Fn1
= (
x
: number) => string
type
Result1
=
ReturnInclude
<null,
Fn1
> // (x: number) => string | null
// Async function - automatically unwraps and rewraps Promise type
Fn2
= (
x
: number) =>
Promise
<string>
type
Result2
=
ReturnInclude
<null,
Fn2
> // (x: number) => Promise<string | null>

[T] AnyAny2Curried

typescript
type AnyAny2Curried = (arg1: any) => (arg2: any) => any

Other

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value

[F] pipe

typescript
<value>(value: value): value
  <value, f1 extends (value: value) => any>(value: value, f1: f1): ReturnType < f1 >
    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any > (value: value, f1: f1, f2: f2): ReturnType < f2 >
      <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any > (value: value, f1: f1, f2: f2, f3: f3): ReturnType < f3 >
        <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4): ReturnType < f4 >
          <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5): ReturnType < f5 >
            <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6): ReturnType < f6 >
              <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7): ReturnType < f7 >
                <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8): ReturnType < f8 >
                  <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9): ReturnType < f9 >
                    <value, f1 extends (value: value) => any, f2 extends (value: ReturnType<f1>) => any, f3 extends (value: ReturnType<f2>) => any, f4 extends (value: ReturnType<f3>) => any, f5 extends (value: ReturnType<f4>) => any, f6 extends (value: ReturnType<f5>) => any, f7 extends (value: ReturnType<f6>) => any, f8 extends (value: ReturnType<f7>) => any, f9 extends (value: ReturnType<f8>) => any, f10 extends (value: ReturnType<f9>) => any > (value: value, f1: f1, f2: f2, f3: f3, f4: f4, f5: f5, f6: f6, f7: f7, f8: f8, f9: f9, f10: f10): ReturnType<f10>
                      (value: any, ...fns ?: (value: any) => any)[]): any

Parameters:

  • value - The initial value to pipe through the functions

Returns: The final transformed value