Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/mobily/ts-belt

πŸ”§ Fast, modern, and practical utility library for FP in TypeScript.
https://github.com/mobily/ts-belt

array flow fp functional-programming monad option option-type result result-type typescript

Last synced: about 21 hours ago
JSON representation

πŸ”§ Fast, modern, and practical utility library for FP in TypeScript.

Awesome Lists containing this project

README

        





Build Status


Coverage


npm


PRs Welcome


All Contributors


GitHub license


Fast, modern, and practical utility library for FP in TypeScript.

## Documentation

Full documentation can be found [here](https://mobily.github.io/ts-belt/).

## Features

- πŸš€ built with `ReScript`, which generates highly performant JavaScript code (see the benchmark results [here](https://mobily.github.io/ts-belt/benchmarks/introduction))
- πŸ‘€ provides more readable code, due to the `data-first` approach
- ✨ supports `TypeScript` and `Flow`
- πŸ›‘ helps you write safer code with `Option` and `Result` types
- 🎯 all functions return immutable data (no side-effects)
- 🌲 tree-shakeable
- πŸ“ fully documented

## Getting started

### Installation

```shell
yarn add @mobily/ts-belt
```

or with `npm`

```shell
npm install @mobily/ts-belt --save
```

### Usage

| Module | Namespace | Description |
|--|-----------|--|
| [Array](https://mobily.github.io/ts-belt/api/array) | A | Utility functions for `Array`. |
| [Boolean](https://mobily.github.io/ts-belt/api/boolean) | B | Utility functions for `Boolean`. |
| [Number](https://mobily.github.io/ts-belt/api/number) | N | Utility functions for `Number`. |
| [Object (Dict)](https://mobily.github.io/ts-belt/api/object) | D | Utility functions for `Object`. |
| [String](https://mobily.github.io/ts-belt/api/string) | S | Utility functions for `String`. |
| [Guards](https://mobily.github.io/ts-belt/api/guards) | G | Various TypeScript guards. |
| [Option](https://mobily.github.io/ts-belt/api/option) | O | Functions for handling the `Option` data type that represents the existence and nonexistence of a value. |
| [Result](https://mobily.github.io/ts-belt/api/result) | R | Functions for describing the result of a certain operation without relying on exceptions. |
| [Function](https://mobily.github.io/ts-belt/api/function) | F | Other useful functions. |

```typescript
import { A, O, N, pipe } from '@mobily/ts-belt'

pipe(
[1, 2, 3, 4, 5], // β†’ [1, 2, 3, 4, 5]
A.dropExactly(2), // β†’ Some([3, 4, 5])
O.flatMap(A.head), // β†’ Some(3)
O.map(N.multiply(10)), // β†’ Some(30)
O.getWithDefault(0), // β†’ 30
) // β†’ 30
```

## Contributors



Marcin Dziewulski

πŸ’» πŸ“– ⚠️ 🎨 🚧

Krzysztof Lenda

πŸ“–

Radek KozieΕ‚

πŸ“–

Artur

πŸ“–

Dominik ŁopaciΕ„ski

πŸ’» πŸ“– ⚠️

Jakub WΔ…sik

πŸ“–

Krystian Mateusiak

πŸ’» πŸ“– ⚠️



MichaΕ‚ Miszczyszyn

πŸ€”

Kevin

πŸ“–

Anthony Khong

πŸ’» πŸ“– ⚠️

Pyrolistical

πŸ“– 🚧 πŸ€”

Mathieu Acthernoene

πŸ€”

## License

The MIT License.

See [LICENSE](LICENSE)