neverthrow
rustic_result
Our great sponsors
neverthrow | rustic_result | |
---|---|---|
16 | 5 | |
2,447 | 21 | |
- | - | |
5.8 | 5.3 | |
6 days ago | 2 months ago | |
TypeScript | Elixir | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
neverthrow
-
Error Handling Patterns
Very timely, was just trying to understand how to improve error handling with typescript recently and came across neverthrow (https://github.com/supermacro/neverthrow) which looks promising…
-
Ask HN: What is the “proper” way to do error-handling in TypeScript?
On my team we use Rust-style Result/Option types for any unrecoverable exceptions.
https://github.com/supermacro/neverthrow
-
The gotcha of unhandled promise rejections
I was happy when Promise became available, but in retrospect I'd wish we would have skipped ahead and gotten Observable (e.g: https://rxjs.dev/) instead to enable more powerful functionality and composition etc.
In Typescript dealing with rejection is also painful since rejection reasons can't be guaranteed to be Error even when you always take care of that. And it can't help you guarantee that you're handling all types of errors thrown. For that purpose I'm thinking of using https://github.com/supermacro/neverthrow#readme or https://swan-io.github.io/boxed.
-
How has learning Rust been a benefit to you in other programming areas?
I highly recommend the neverthrow library for bringing Result to Typescript.
-
functional error handling (functions return error) recommendations
I like the Result monad from here: https://github.com/supermacro/neverthrow
-
How to know if a function throws in Typescript?
What do you think of neverthrow?
-
ts-results - a lightweight result wrapper to exhibit success/failure instead of using/throwing exceptions.
I use https://github.com/supermacro/neverthrow for this
-
Handle Javascript errors like in Go
See neverthrow as an example of correctly encoding the failure into the return type of the function.
- Why doesn't typescript have a throws type to annotate functions that can throw an error?
-
what's the recommended way to handle error in TS?
I use Neverthrow. Same idea, concurrent projects...
rustic_result
-
Switching to Elixir
Self promotion moment:
If you enjoy the Result/Either type and API in Rust, I made this project just for this: https://github.com/linkdd/rustic_result
I also made https://github.com/linkdd/rustic_maybe/tree/main for an Option/Maybe type.
NB: Those are not types, but I'm waiting for set theoretic types to update those libs :)
-
Error Handling Patterns
It's missing the Erlang/Elixir pattern of returning a tuple `{:ok, T}` or `{:error, E}`, where we can then use pattern matching, or `with` expressions, etc...
To be fair, it is very similar to a `Result` type, which is why I made this library a while ago: https://github.com/linkdd/rustic_result
-
A new milestone for Letlang - Effect Handlers
I intend to add a pipeline operator similar to Elixir, to be used with an std::result module which will provide functions to ease writing such complex code. I may take inspiration on an Elixir library I wrote a while ago: https://github.com/linkdd/rustic_result
-
Elixir Railway Oriented Programming
A while ago, I made this library https://github.com/linkdd/rustic_result
-
Go Replaces Interface{} with 'Any'
I also made a library for working with `{:ok, value}` and `{:error, reason}` in Elixir: https://github.com/linkdd/rustic_result
Thanks to the pipeline operator and pattern matching, it makes pretty easy to read pipelines. It does not completely replace the with statement (that was not the point) but it simplified a lot of code.
What are some alternatives?
ts-results - A typescript implementation of Rust's Result object.
eqwalizer - A type-checker for Erlang
oxide.ts - Rust's Option<T> and Result<T, E>, implemented for TypeScript.
semver - Semantic Versioning Specification
fp-ts - Functional programming in TypeScript
go - The Go programming language
result - A TypeScript result type taking cues from Rust's Result and Haskell's Either types
rustic_maybe - Maybe monad for Elixir inspired by Rust Option type
functional-conditionals - A library for writing if / else if / else in a functional way.
gopherjs - A compiler from Go to JavaScript for running Go code in a browser
eslint-plugin-promise - Enforce best practices for JavaScript promises
transport-site - Rendre disponible, valoriser et améliorer les données transports