speedskater / babel-plugin-rewire

A babel plugin adding the ability to rewire module dependencies. This enables to mock modules for testing purposes.
843 stars 90 forks source link

RC5 incompatible with transform-async-to-generator #152

Closed rainydio closed 7 years ago

rainydio commented 7 years ago

Simple test code:

import something from "somewhere";

export async function foo() {
  something();
}

Throws an error:

TypeError: index.js: Property id of VariableDeclarator expected node to be of a type ["LVal"] but instead got "CallExpression"
    at Object.validate (/home/dio/broken-rewire/node_modules/babel-types/lib/definitions/index.js:109:13)
    at Object.validate (/home/dio/broken-rewire/node_modules/babel-types/lib/index.js:541:9)
    at NodePath._replaceWith (/home/dio/broken-rewire/node_modules/babel-traverse/lib/path/replacement.js:208:7)
    at NodePath.replaceWith (/home/dio/broken-rewire/node_modules/babel-traverse/lib/path/replacement.js:186:8)
    at RewireState.Identifier (/home/dio/broken-rewire/node_modules/babel-plugin-rewire/lib/babel-plugin-rewire.js:176:10)
    at NodePath._call (/home/dio/broken-rewire/node_modules/babel-traverse/lib/path/context.js:76:18)
    at NodePath.call (/home/dio/broken-rewire/node_modules/babel-traverse/lib/path/context.js:48:17)
    at NodePath.visit (/home/dio/broken-rewire/node_modules/babel-traverse/lib/path/context.js:106:12)
    at TraversalContext.visitQueue (/home/dio/broken-rewire/node_modules/babel-traverse/lib/context.js:167:16)
    at TraversalContext.visitSingle (/home/dio/broken-rewire/node_modules/babel-traverse/lib/context.js:118:19)
    at TraversalContext.visit (/home/dio/broken-rewire/node_modules/babel-traverse/lib/context.js:211:19)

package.json

{
  "private": true,
  "dependencies": {
    "babel-cli": "^6.11.4",
    "babel-plugin-rewire": "^1.0.0-rc-5",
    "babel-plugin-transform-async-to-generator": "^6.8.0"
  },
  "babel": {
    "plugins": [
      "transform-async-to-generator",
      "rewire"
    ]
  }
}
speedskater commented 7 years ago

@rainydio Thanks for providing the sample. I will try to have a look at it ASAP

speedskater commented 7 years ago

@rainydio is working with "syntax-async-functions" as well as "transform-regenerator" an option for you. As this seems to work https://github.com/speedskater/babel-plugin-rewire/tree/master/samples/issue152

rainydio commented 7 years ago

Thanks, it works. Although it's still strange that rc5 doesn't with async-to-regenerator

speedskater commented 7 years ago

@rainydio You are right. Therefore a pushed new version rc6 which fixes the issues with transform-async-to-generator. Please let me know if this solves your issue.

abramz commented 7 years ago

I got this error with rc5 but everything seems to be working with rc6. Thanks.