3 ms·
What do people think of fp-ts?
by cercatrova 4y ago
What do people think of fp-ts?
- l2cluster 4y agoI really like it, but TypeScript syntax is a bit unreadable with it. I'm used to Scala which looks a lot cleaner with extension methods and collections being immutable by default.
- upzylon 4y agoThat looks interesting, I hadn't heard of the project. Will definitely have a look at the library. But it defines its pipe function the same way RXJS does, separately for any number of arguments: function pipe<A>(a: A): A function pipe<A, B>(a: A, ab: (a: A) => B): B function pipe<A, B, C>(a: A, ab: (a: A) => B, bc: (b: B) => C): C function pipe<A, B, C, D>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D): D ... https://github.com/gcanti/fp-ts/blob/master/src/function.ts#L410 https://github.com/gcanti/fp-ts/blob/master/src/function.ts#...
- jackblemming 4y ago> But it defines its pipe function the same way RXJS does, separately for any number of arguments What’s the issue? This has been a common way to do this sort of thing since C++ template meta programming. Have you honestly ever broke the bounds?
- upzylon 4y agoThere isn't necessarily any issue with it besides maybe not being very maintainable. I just tried to find a generic solution for the fun of it
- homami 4y agoI fully recommend this. The fp-ts is quite readable for JavaScript. Combine it with io-ts and you have a robust way of handling user inputs: pipe( decoder.decode(req.body) , E.mapLeft(_ex => new InputValidationError(decoder.decode(req.body))) , RTE.fromEither , RTE.chain(handleInput) , RTE.match( error => { res.status(500); res.send(error) }, result => { res.send(result) } ) )(reader)