astral-angular-annotate

AngularJS DI annotation pass for astral

Astral Angular Annotator

A pass for Astral to generate AngularJS [DI annotations](TODO: find docs) automatically.

For a tool CLI, see `[ngmin](TODO: link).

Below is an example parsing, annotating, and generating JavaScript code. Note that this requires the esprima, escodegen, astral, and astral-angular-annotator npm packages.

var esprima = require('esprima'),
  escodegen = require('escodegen'),
  astral = require('astral')();
 
// register angular annotator pass 
require('astral-angular-annotator')(astral);
 
var inputCode = "angular.module('myMod').controller('FooCtrl', function ($scope) {" +
"  // ..." +
"});";
 
var ast = esprima.parse(inputCode, {
  tolerant: true
});
 
astral.run(ast);
 
var generatedCode = escodegen.generate(ast, {
  format: {
    indent: {
      style: '  '
    }
  }
});
 
console.log(generatedCode);
 
// logs: 
// 
// angular.module('myMod').controller('FooCtrl', ['$scope', function ($scope) { 
//   // ... 
// }); 
 

You can also access each of the individual passes like this:

 

This might be handy for more fine-tuned control.

MIT