Ƭ AsChain<f, g>: { [k in keyof f]: Function }
| Name | Type |
|---|---|
f |
extends [FuncType, …FuncType[]] |
g |
extends FuncType[] = Tail<f> |
Ƭ AsAsyncChain<f, g>: { [k in keyof f]: Function }
| Name | Type |
|---|---|
f |
extends [FuncType, …FuncType[]] |
g |
extends FuncType[] = Tail<f> |
Ƭ ArgType<F, Else>: F extends (arg: infer A) => any ? A : Else
| Name | Type |
|---|---|
F |
F |
Else |
never |
Ƭ FuncType: (arg: any) => any
▸ (arg): any
| Name | Type |
|---|---|
arg |
any |
any
Ƭ LastIndexOf<a>: (…x: a) => void extends (y: any, …z: infer b) => void ? b["length"] : never
| Name | Type |
|---|---|
a |
extends any[] |
Ƭ Lookup<t, k, el>: k extends keyof t ? t[k] : el
| Name | Type |
|---|---|
t |
t |
k |
extends keyof any |
el |
never |
Ƭ Tail<a>: (…t: a) => void extends (x: any, …u: infer b) => void ? b : never
| Name | Type |
|---|---|
a |
extends any[] |
Ƭ Pipe: <f>(…f: f & AsChain<f>) => f[0] extends () => any ? () => ReturnType<f[LastIndexOf<f>]> : f[0] extends (arg: infer U) => any ? (arg: U) => ReturnType<f[LastIndexOf<f>]> : never
▸ <f>(...f): f[0] extends () => any ? () => ReturnType<f[LastIndexOf<f>]> : f[0] extends (arg: infer U) => any ? (arg: U) => ReturnType<f[LastIndexOf<f>]> : never
| Name | Type |
|---|---|
f |
extends [(arg: any) => any | () => any, …Function[]] |
| Name | Type |
|---|---|
...f |
f & AsChain<f> |
f[0] extends () => any ? () => ReturnType<f[LastIndexOf<f>]> : f[0] extends (arg: infer U) => any ? (arg: U) => ReturnType<f[LastIndexOf<f>]> : never
Ƭ PipeAsync: <f>(…f: f & AsAsyncChain<f>) => f[0] extends () => any ? () => ReturnType<f[LastIndexOf<f>]> : f[0] extends (arg: infer U) => any ? (arg: U) => ReturnType<f[LastIndexOf<f>]> : never
▸ <f>(...f): f[0] extends () => any ? () => ReturnType<f[LastIndexOf<f>]> : f[0] extends (arg: infer U) => any ? (arg: U) => ReturnType<f[LastIndexOf<f>]> : never
| Name | Type |
|---|---|
f |
extends [(arg: any) => Promise<any> | () => Promise<any>, …Function[]] |
| Name | Type |
|---|---|
...f |
f & AsAsyncChain<f> |
f[0] extends () => any ? () => ReturnType<f[LastIndexOf<f>]> : f[0] extends (arg: infer U) => any ? (arg: U) => ReturnType<f[LastIndexOf<f>]> : never
▸ async<f>(...f): f[0] extends () => any ? () => ReturnType<f[LastIndexOf<f>]> : f[0] extends (arg: U) => any ? (arg: U) => ReturnType<f[LastIndexOf<f>]> : never
Same as the sync version, but handles promises.
Since
4.0.0
| Name | Type |
|---|---|
f |
extends [(arg: any) => Promise<any> | () => Promise<any>, …Function[]] |
| Name | Type |
|---|---|
...f |
f & AsAsyncChain<f, Tail<f>> |
f[0] extends () => any ? () => ReturnType<f[LastIndexOf<f>]> : f[0] extends (arg: U) => any ? (arg: U) => ReturnType<f[LastIndexOf<f>]> : never
▸ sync<f>(...f): f[0] extends () => any ? () => ReturnType<f[LastIndexOf<f>]> : f[0] extends (arg: U) => any ? (arg: U) => ReturnType<f[LastIndexOf<f>]> : never
Creates a pipeline of synchronous functions
Example
import { Num, Pipe } from 'tiinvo'
const vat = Pipe.sync(Num.div(100), Num.mul(22));
vat(100) // 22
vat(150) // 33
vat(200) // 44
Since
4.0.0
| Name | Type |
|---|---|
f |
extends [(arg: any) => any, …Function[]] |
| Name | Type |
|---|---|
...f |
f & AsChain<f, Tail<f>> |
f[0] extends () => any ? () => ReturnType<f[LastIndexOf<f>]> : f[0] extends (arg: U) => any ? (arg: U) => ReturnType<f[LastIndexOf<f>]> : never