schmod / babel-plugin-angularjs-annotate

Add Angular 1.x dependency injection annotations to ES6 code
http://schmod.github.io/babel-plugin-angularjs-annotate
MIT License
241 stars 26 forks source link

Any way to catch babel-renamed function arguments? #40

Open dlinnemeyer opened 6 years ago

dlinnemeyer commented 6 years ago

I ran into a problem related to babel renaming function arguments when they collide with babel adding names to anonymous functions (stack overflow discussion on it here: https://stackoverflow.com/q/38383512). We have a DI argument named foo, which gets renamed to _foo by babel , which breaks angular annotations.

We start with something like this:

function(foo) {
  var bar = {
    foo: function() {}
  };
}

And get:

['_foo', function(_foo) {
  var bar = {
    foo: function foo() {}
  };
}]

I'm guessing this isn't a bug in angularjs-annotate, but I'm wondering if there's any way to run annotations prior to babel renaming arguments? Or is that impossible the way babel plugins are structured?

schmod commented 6 years ago

We should know when babel renames function arguments. We've had issues in the past where Babel wasn't properly communicating to us that it was renaming things, and it looks like that's what's happening here again... :-(

dlinnemeyer commented 6 years ago

Oh, interesting, thanks for the info. So what would be the next step? Not sure I understand the problem with the internals well enough to report a bug for babel itself.

Cererec commented 5 years ago

Hi I am experiencing this kind of problem, any fixes on this?

thanks