gxz
v2.0.1
Published
🦋 Function Composer with deep typing.
Downloads
11
Readme
gxz
🦋 Function Composer with deep typing.
Installation
npm i gxz
🎵 Usage
This composer guarantee the return type of n
callback match the parameter type of n+1
callback.
Every callback should only have one parameter, ts will warn you if you have more than one or 0 parameters.
import gxz from 'gxz'
const a = (arg: number) => {
return arg === 1 ? 'hello' : 'world'
}
const b = (arg: string) => {
return arg === 'hello'
}
const c = (arg: boolean) => {
return arg ? 100 : 0
}
const composed = gxz(a, b) // type of `composed` is (arg:number) => boolean
composed(1) // true
composed(2) // false
// type checking
composed('a') // Argument of type 'string' is not assignable to parameter of type 'number'.
gxz(a, c) // Argument of type '(arg: number) => "hello" | "world"' is not assignable to parameter of type '"return type does not match the next argument type"'.
gxz(a) // Argument of type '(arg: number) => "hello" | "world"' is not assignable to parameter of type '"need at least 2 functions"'.