Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/mearns/fp-try

A Try encapsulates the result of an operation that may have failed.
https://github.com/mearns/fp-try

either error error-handling errors failure functional functional-programming javascript optional scala try try-catch typescript

Last synced: about 2 months ago
JSON representation

A Try encapsulates the result of an operation that may have failed.

Awesome Lists containing this project

README

        

# fp-try

[**Web Site**](https://mearns.github.io/fp-try/)

A functional-programming `Try` interface, inspired by the Scala type. A `Try` represents
the results of an operation that may have failed, encapsulating either the successful result
as a `Success`, or the error as a `Failure`.

```typescript
const DEFAULT_USER: User = buildDefaultUser();

function getUser(userName: string): User {
return Try.apply(getDatabaseCredentials)
.map((c: Creds) => fetchUserDetails(c, userName))
.map(mapResultsToUser)
.getOrElse(DEFAULT_USER);
}

function getDatabaseCredentials(): Creds {
/* ... */
}

function fetchUserDetails(c: Creds, userName: string): ResultSet {
/* ... */
}

function mapResultsToUser(rs: ResultSet): User {
/* ... */
}
```

For details on the API, see https://mearns.github.io/fp-try/.

There are a lot of anti-patterns with this type. For more information on how to use
it effectively, see our article:
["Do or Do Not: Patterns and Antipatterns with the Try type"](https://medium.com/software-ascending/do-or-do-not-patterns-and-antipatterns-with-the-try-type-c77a63f74cc9)