babel-plugin-inject-args

1.0.0 • Public • Published

babel-plugin-inject-args

Babel plugin that processes specially annotated functions or classes and exposes the names of their parameters as runtime-accessible metadata. This can be used by dependency injection containers to call the function or instantiate the class and automatically resolve dependencies.

To enable this metadata for a function or class, add the string @inject in a leading comment. The plugin will add a $inject property to the object which contains an array of parameter names. For example, this source:

// @inject
function createThing(paramA, paramB) {
}

Is transformed into:

// @inject
function createThing(paramA, paramB) {
}

myService.$inject = ['paramA', 'paramB'];

ES classes are also supported:

// @inject
class Thing {
  constructor(paramA, paramB) {  }
}

Is transformed into:

// @inject
class Thing {
  constructor(paramA, paramB) {  }
}

Thing.$inject = ['paramA', 'paramB'];

Usage

To use the plugin, first add the dependency to your project:

npm install --save-dev babel-plugin-inject-args

Then enable the plugin in your Babel configuration, for example in a .babelrc file:

{
  "plugins": ["inject-args"]
}

Further reading

For information on understanding the plugin implementation, see https://github.com/jamiebuilds/babel-handbook.

Readme

Keywords

none

Package Sidebar

Install

npm i babel-plugin-inject-args

Weekly Downloads

77

Version

1.0.0

License

BSD-2-Clause

Unpacked Size

4.32 kB

Total Files

4

Last publish

Collaborators

  • esanzgar
  • robertknight
  • jenkins-hypothesis
  • lyzadanger