2.0.1 ā€¢ Published 2 years ago

gxz v2.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

gxz

npm GitHub dependencies circleci codecov

šŸ¦‹ 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"'.
1.0.7

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

0.0.0-beta.2

2 years ago

0.0.0-beta.1

2 years ago

1.0.0

3 years ago