- Fixed
ng-annotate-patched
command-line parsing when using dependencycommander >= 7.0.0
.
- Added support for ES2019 Optional
catch
binding (try {} catch {}
). - Allowed
commander
dependency >=6,<=9. - Updated dependencies.
- Updated acorn from version 7 to version 8.
- Changed the default acorn
ecmaVersion
from 11 to "latest". - Updated dependencies.
- Updated dependencies.
- Don't crash on ES2018 object spread syntax. Note that for now, the spread value is ignored and not processed further.
- Updated acorn from version 6 to 7.
- Set the default acorn ECMAScript version to 11 (2020).
- Dynamic imports (
import()
) is supported unconditionally. The the dynamicImport option is now ignored, and theacorn-dynamic-import
dependency is removed. - Changed command line parsing library (reduce transitive dependency count).
- Added support for arrow functions, e.g. annotating
var controller = ($scope) => { ngInject"; }
.
- Added support for ES6 classes with explicit
ngInject
annotations. The support may not be perfect yet. For more information please see ES6 test file. - Updated the acorn dependency from 5 -> 6.
- Updated the source-map dependency from 0.5 -> 0.6.
- Remove a big and useless ctags file accidentally included in the 1.8.0 archive published to npm.
- Require node>=6.0.0.
- Remove a lot of trivial dependencies.
- Require node>=4.0.0.
- Reorganize internal directory structure. The main file moved to
src/ng-annotate-main.js
. - Add basic support for ES6 property shorthand and destructuring.
- Don't fail upon encountering dynamic
import()
.
- Switch from tilde ~ dependencies to ^ caret dependencies.
- Support
export var varName = function($scope) { "ngInject"; }
. - Support
/* @ngInject */ export [default] var varName = function [functionName]() {...}
.
- Support ngInject on
export [default] function functionName() {...}
.
- Initial version of the fork.
- Renamed package and binary from
ng-annotate
tong-annotate-patched
. - Updated the acorn JavaScript parser.
- Enabled some acorn options that allow it to parse a wider range of JavaScript.
- Added a
acornOptions
option to the API, to allow overriding or passing extra options to acorn.
- bugfix case where $inject arrays were incorrectly hoisted
- angular-dashboard-framework optional: match apply
- bugfix $inject array positioning with TypeScript inheritance (__extends)
- bugfix parsing in strict mode even if source is not
- bugfix $inject arrays for function definitions not being hoisted
- match angular.module("MyMod").component("foo", {controller: function ..})
- match angular.module("MyMod").decorator("foo", function ..)
- match $controllerProvider.register
- match $uibModal.open from angular-ui (recently renamed from $modal.open)
- ui-router declarations improvements
- bugfix reference-following crash
- don't include .gitignore in npm package
- optional matchers: --list and --enable
- angular-dashboard-framework optional
- bugfix documentation of sourcemap API
- improved incoming sourcemap support
- match flux-angular myMod.store("MyCtrl", function ..)
- bugfix duplicated fn.$inject arrays in some IIFE situations
- emit LF/CRLF newlines depending on input newlines
- minor newline fixes
- improved Traceur compatibility ("ngInject" prologue => fn.$inject = [..] arrays)
- bugfix "ngInject" directive prologue (removing and rebuilding)
- bugfix extra newlines when rebuilding existing fn.$inject = [..] arrays
- bugfix crash on ES6 input (but ng-annotate does not yet understand ES6)
- bugfix release for compatibility with io.js
- "ngInject" directive prologue (usage like "use strict")
- /* @ngNoInject */, ngNoInject(..) and "ngNoInject" for suppressing false positives
- Acorn is now the default and only parser
- removed the experimental --es6 option and made it the default
- bugfix /* @ngInject */ not working as expected in case of other matches
- support sourcemap combination and better map granularity
- match $mdDialog.show, $mdToast.show and $mdBottomSheet.show
- improved $provide matching (.decorator, .service, .factory and .provider)
- bugfix crash when reference-following to an empty variable declarator
- improved TypeScript compatibility due to improved matching through IIFE's
- match $injector.invoke
- $modal.open is no longer experimental
- reference-following is no longer experimental
- bugfix reference-following such as var Ctrl = function(dep1, dep2) {}
- match properties {name: ..}, {"name": ..} and {'name': ..} alike
- --es6 option for ES6 support via the Acorn parser (experimental)
- support stateHelperProvider.setNestedState nested children
- support stateHelperProvider.setNestedState
- optional renaming of declarations and references (experimental)
- further improved detection of existing fn.$inject = [..] arrays
- improved insertion of $inject arrays in case of early return
- improved angular module detection (reference-following)
- restrict matching based on method context (directive, provider)
- improved detection of existing fn.$inject = [..] arrays
- reference-following (experimental)
- ngInject(..) as an alternative to /* @ngInject */ ..
- more flexible /* @ngInject */ placement (object literals)
- --sourcemap option for generating inline source maps
- match implicit config function: angular.module("MyMod", function(dep) {})
- match through IIFE's
- more capable /* @ngInject */ (support function expression assignment)
- match myMod.invoke
- more capable --regexp option (match any method callee, identifier or not)
- added ability to read from stdin and write to file
- bugfix name of generated fn.$inject = [..] arrays (was: fn.$injects)
- stricter match: only match code inside of angular modules (except explicit)
- ui-router declarations improvements
- bugfix duplicated annotations arrays in case of redundant /* @ngInject */
- indent generated fn.$inject = [..] arrays nicely
- /* @ngInject */ object literal support
- bugfix ES5 strict mode oops
- added more tools that support ng-annotate to README
- match $modal.open from angular-ui/bootstrap (experimental)
- --stats option for runtime statistics (experimental)
- revert match .controller(name, ..) that was added in 0.9.0 because it triggered false positives
- explicit annotations using /* @ngInject */
- --plugin option to load user plugins (experimental, 0.9.x may change API)
- match $httpProvider.interceptors.push(function($scope) {})
- match $httpProvider.responseInterceptors.push(function($scope) {})
- match self and that as aliases to this for this.$get = function($scope){}
- match .controller(name, ..) in addition to .controller("name", ..)
- bugfix ui-router declarations
- bugfix angular.module("MyMod").bootstrap(e, [], {}) disrupting chaining
- even faster (~6% faster annotating angular.js)
- add error array to API return object
- ngRoute support: $routeProvider.when("path", { .. })
- even faster (~11% faster annotating angular.js)
- support obj.myMod.controller(..) in addition to myMod.controller(..)
- ui-router declarations improvements
- ui-router declarations improvements
- ui-router declarations support
- --single_quotes option to output '$scope' instead of "$scope"
- tweaked output: ["foo", "bar", ..] instead of ["foo","bar", ..]
- match angular.module("MyMod").animation(".class", function ..)
- bugfix .provider("foo", function($scope) ..) annotation. fixes #2
- bugfix angular.module("MyMod").constant("foo", "bar") disrupting chaining
- match $provide.decorator (in addition to other $provide methods)
- bugfix angular.module("MyMod").value("foo", "bar") disrupting chaining
- ES5 build via defs
- Grunt-support via grunt-ng-annotate
- better matching
- better README
- cross-platform shell script wrapper