Coder Social home page Coder Social logo

Comments (8)

AmirabbasJ avatar AmirabbasJ commented on June 10, 2024 1

@ASafaeirad
You're right
it could be much more general than being just for promises
but in that case we should have one for general use and one specifically for promises
because the return type won't really work out this way

if we change it to

type TryCatch = <T, E>(f: () => T, onErr: () => E) => E | T

this way if the T is of type e.g Promise<string> and the E is number then the return type would be Promise<string> | number which is not what we want

so in conclusion we need a new function for each wrapper type
I'll fix the signature

from toolbox.

Keivan-sf avatar Keivan-sf commented on June 10, 2024 1

Will look into this one, feel free to assign

from toolbox.

ASafaeirad avatar ASafaeirad commented on June 10, 2024 1

This is an old issue, we gave up with namespaces.

from toolbox.

ASafaeirad avatar ASafaeirad commented on June 10, 2024

It seems nice 👍
But why should it work with promises?

from toolbox.

AmirabbasJ avatar AmirabbasJ commented on June 10, 2024

I think we also need a namespace for each type so that we can have such thing

import * as N from 'toolbox/Nullable'
import { asyncTryCatch, tryCatch } from 'toolbox/functions'

tryCatch()
asyncTryCatch() 
N.tryCatch()
N.asyncTryCatch()

from toolbox.

ASafaeirad avatar ASafaeirad commented on June 10, 2024

It makes sense. I agree.

from toolbox.

Keivan-sf avatar Keivan-sf commented on June 10, 2024

Do we really need this syntax?

N.asyncTryCatch()
N.tryCatch()

Cause right now nullable functions are exposed like this:

import { concatArrays } from '@fullstacksjs/toolbox'

If we want to have a syntax like N.tryCatch() and also prevent confusion with the normal tryCatch , we need to export a single nullable object rather than its utilities, which is breaking.
Or maybe I'm just missing something

from toolbox.

github-actions avatar github-actions commented on June 10, 2024

🎉 This issue has been resolved in version 4.6.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

from toolbox.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.