Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Matching doesn't work on strings #52

Open
cirokd opened this issue Sep 27, 2018 · 5 comments
Open

Matching doesn't work on strings #52

cirokd opened this issue Sep 27, 2018 · 5 comments
Labels

Comments

@cirokd
Copy link

cirokd commented Sep 27, 2018

Hello!

First of all, great library, thank you!

I just introduced z (version 1.0.8) to a project and I cannot seem to get it to work with strings. I created a sandbox in which I recreated the issue I faced. It also includes two tests from the test suite that don't work as expected. I'm not familiar with the source code but anyways let me know if I can be of help fixing this issue.

Here is the sandbox: https://codesandbox.io/s/w6kql5km47
Thank you in advance for your time looking into this!

@leonardiwagner
Copy link
Member

Hi @cirokd , your sandbox at codesandbox.io is using babel which transpile your code, so z isn't receiving your actual code but a transpiled one (which doesn't suit very well for z).

I don't know codesandbox.io much, but I tried going on configuration files, added .babelrc then I cleaned up the preset and then your code ran as expected 😁 , the .babelrc file looked like this:

{
  "plugins": [
    [
      "transform-runtime",
      {
        "polyfill": false,
        "regenerator": true
      }
    ],
    "transform-object-rest-spread"
  ]
}

If you want to use z with babel is possible, just select a stage which is compatible with functions with default parameters, you can see more here: https://babeljs.io/docs/en/next/presets#stage-x-experimental-presets

@cirokd
Copy link
Author

cirokd commented Sep 28, 2018

Thank you @leonardiwagner for your quick response!

I found this page on MDN about default parameters. Can you please tell me if I need "Basic support" only, or is "Destructured parameter with default value assignment" necessary as well? What is required for z to work?

@leonardiwagner
Copy link
Member

leonardiwagner commented Sep 28, 2018

@cirokd actually I don't even think z itself use default parameters at all! The requirement to use the basic support of default parameters in your case is because you are using default parameters on z and this shouldn't be transpiled, so you can go with "basic support".

That means if later you want to use object matches in z, then will be required "destructured parameters" support once the objects matches are written using destructured parameters!

tl;dr; it will depend on what you want to write on z, not z itself , "basic support" is fine in your case 😄

@cirokd
Copy link
Author

cirokd commented Oct 3, 2018

Thank you for your time!

@jedwards1211
Copy link

so z isn't receiving your actual code but a transpiled one (which doesn't suit very well for z)

Would you accept a PR to warn about this at the top of the README? This is a very major caveat and users deserve to know up front about it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants