4 ms·
Spent sometime to complete the document of my rust Result like library `unwrapit` for JS/TS. Still think this might be a proper way to deal with errors in JS/T
by musicq 3y ago
Spent sometime to complete the document of my rust Result like library `unwrapit` for JS/TS.
Still think this might be a proper way to deal with errors in JS/TS
- optimistprime 3y agoThis is interesting. Does it have any performance impact?
- musicq 3y agoDon't think would affect performance. The core function `wrap` is just try catch under the hood. https://github.com/musicq/unwrapit/blob/d5c437a235ad1f5ad042a18e6f04ae90e3fc1d28/src/result.ts#L159-L184 https://github.com/musicq/unwrapit/blob/d5c437a235ad1f5ad042...
- optimistprime 3y agoiirc, try catch does have performance impact in js.
- fearface 3y agoI think the idea of try/catch is to let the error bubble up to the place where it can be handled. It usually results into having error handling in a few central places. Your example in github is IMO not how to make best use of try/catch. Here’s lots of typical exception handling patterns: http://wiki.c2.com/?ExceptionPatterns http://wiki.c2.com/?ExceptionPatterns Persobally I prefer exceptions over boilerplate “if’s”, but good to know that there’s a wrapper for the people who don’t.
- slawr1805 3y agoThis is awesome! I dig this when using Rust and am pumped to try and sneak this in at work where we have a large TS codebase.
- jwhiles 3y agoThis is a nice project, but it kind of feels like the result of someone who's just learnt about Rust/Haskell and wants to port what they know to JavaScript. There's a lot of more established and battle tested libraries with the same functionality - I've recently been using Purify and finding it to be absolutely fine :) their version of the same feature is here: https://gigobyte.github.io/purify/adts/Maybe https://gigobyte.github.io/purify/adts/Maybe
- grose 3y agoWhoa, these docs are really nice. Love how it includes the functional Haskellish signature, TS signature, and useful examples for each. Props to the authors.