Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/mearns/fp-try
- Owner: mearns
- License: mit
- Created: 2019-10-22T01:32:08.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-05T07:47:40.000Z (about 2 years ago)
- Last Synced: 2024-11-08T16:06:27.503Z (3 months ago)
- Topics: either, error, error-handling, errors, failure, functional, functional-programming, javascript, optional, scala, try, try-catch, typescript
- Language: JavaScript
- Homepage: https://mearns.github.io/fp-try/
- Size: 553 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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)