Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/euphocat/awesome-fp-ts

A collection of awesome things regarding the fp-ts ecosystem.
https://github.com/euphocat/awesome-fp-ts

List: awesome-fp-ts

Last synced: about 1 month ago
JSON representation

A collection of awesome things regarding the fp-ts ecosystem.

Awesome Lists containing this project

README

        

# Awesome fp-ts

A collection of awesome things regarding the fp-ts ecosystem.

--------

### fp-ts

#### General Resources

> fp-ts is a library for typed functional programming in TypeScript.

* [github fp-ts](https://github.com/gcanti/fp-ts)
* [fp-ts documention](https://gcanti.github.io/fp-ts/)
* [API documention](https://gcanti.github.io/fp-ts/modules/)

#### Giulio Canti (fp-ts creator) blog posts

- [Interoperability with non functional code](https://dev.to/gcanti/interoperability-with-non-functional-code-using-fp-ts-432e)
- [Eq](https://dev.to/gcanti/getting-started-with-fp-ts-setoid-39f3)
- [Ord](https://dev.to/gcanti/getting-started-with-fp-ts-ord-5f1e)
- [Semigroup](https://dev.to/gcanti/getting-started-with-fp-ts-semigroup-2mf7)
- [Monoid](https://dev.to/gcanti/getting-started-with-fp-ts-monoid-ja0)
- [Category](https://dev.to/gcanti/getting-started-with-fp-ts-category-4c9a)
- [Functor](https://dev.to/gcanti/getting-started-with-fp-ts-functor-36ek)
- [Applicative](https://dev.to/gcanti/getting-started-with-fp-ts-applicative-1kb3)
- [Monad](https://dev.to/gcanti/getting-started-with-fp-ts-monad-6k)
- [Either vs Validation](https://dev.to/gcanti/getting-started-with-fp-ts-either-vs-validation-5eja)
- [IO](https://dev.to/gcanti/getting-started-with-fp-ts-io-36p6)
- [Reader](https://dev.to/gcanti/getting-started-with-fp-ts-reader-1ie5)
- [Combinators Part I](https://dev.to/gcanti/functional-design-combinators-14pn)
- [Combinators Part II](https://dev.to/gcanti/functional-design-how-to-make-the-time-combinator-more-general-3fge)
- [Tagless final](https://dev.to/gcanti/functional-design-tagless-final-332k)
- [Smart constructors](https://dev.to/gcanti/functional-design-smart-constructors-14nb)
- [Introduction to property based testing](https://dev.to/gcanti/introduction-to-property-based-testing-17nk)
- [Algebraic Data Types](https://dev.to/gcanti/functional-design-algebraic-data-types-36kf)

#### Guilio Canti Functional design series
- [Combinators Part I](https://dev.to/gcanti/functional-design-combinators-14pn)
- [Combinators Part II](https://dev.to/gcanti/functional-design-how-to-make-the-time-combinator-more-general-3fge)
- [Tagless final](https://dev.to/gcanti/functional-design-tagless-final-332k)
- [Smart constructors](https://dev.to/gcanti/functional-design-smart-constructors-14nb)
- [Introduction to property based testing](https://dev.to/gcanti/introduction-to-property-based-testing-17nk)
- [Algebraic Data Types](https://dev.to/gcanti/functional-design-algebraic-data-types-36kf)

#### Advanced code examples

- "`fp-ts` to the max" (TypeScript port of John De Goes's ["FP to the max"](https://www.youtube.com/watch?v=sxudIMiOo68) in Scala)
- [Part I](https://github.com/gcanti/fp-ts/blob/master/examples/fp-ts-to-the-max-I.ts)
- [Part II](https://github.com/gcanti/fp-ts/blob/master/examples/fp-ts-to-the-max-II.ts)

#### Community documentation

- [fp-ts recipes](https://grossbart.github.io/fp-ts-recipes/) – A collection of practical recipes for working with `fp-ts`
- [Should I use fp-ts Option?](https://dev.to/anthonyjoeseph/should-i-use-fp-ts-option-28ed)
- [Option: fp-ts](https://dev.to/waynevanson/fp-ts-meets-if-else-and-switch-part-1-3-2lpf)
- [Either: fp-ts](https://dev.to/waynevanson/either-fp-ts-meets-if-else-and-switch-part-2-3-893)
- [fp-ts, sequenceT, and sweet sweet async typed FP](https://dev.to/gnomff_65/fp-ts-sequencet-and-sweet-sweet-async-typed-fp-5aop)
- [TypeScript + fp-ts: ReaderTaskEither Foundations](https://andywhite.xyz/posts/2021-01-27-rte-foundations/) - great article about ReaderTaskEither that deeply explains the Reader + Task + Either concepts
- [TypeScript + fp-ts: ReaderTaskEither and React](https://andywhite.xyz/posts/2021-01-28-rte-react/) - a continuation of the explaination about ReaderTaskEither concept with real world and human-friendly example in React

### io-ts
> Runtime type system for IO decoding/encoding

#### General Resources
* [github io-ts](https://github.com/gcanti/io-ts)
* [io-ts documention](https://github.com/gcanti/io-ts/blob/master/index.md)
* [API Documention](https://gcanti.github.io/io-ts/)

#### io-ts Tools
* [github io-ts-types](https://github.com/gcanti/io-ts-types) - A collection of runtime types and combinators
* [io-ts-reporters](https://github.com/gillchristian/io-ts-reporters) - transform `t.Error` into nice `string`

### Libraries based on fp-ts
* [fp-ts-std](https://samhh.github.io/fp-ts-std/) - As the say: "The missing pseudo-standard library for fp-ts"

### Videos
- [fp 101](https://www.youtube.com/watch?v=ci_rKKvvkJo&list=PLEwNZN34BR6IX2zE3h-c4iYCLvR-UkoNV) functional programming courses based on fp-ts
- [Functional Programming in TypeScript](https://www.youtube.com/playlist?list=PLuPevXgCPUIMbCxBEnc1dNwboH6e2ImQo) - Discover functional programming with Typescript and create a library like fp-ts alongside Sahand Javid in this beginner-friendly YouTube playlist.