angular_compiler 0.4.1

  • Installing
  • Versions
  • 68

Pub Package

Tooling for compiling AngularDart.


  • Catches an (invalid) null token of a provider and throws a better error.

  • Catches an (invalid) null value of the function for FactoryProvider.

  • Emits all strings for @GeneratedInjector as raw (r'$5.00').

  • Supports named arguments for ValueProvider and @GeneratedInjector.

  • Prevents InjectorReader.accept() from crashing when given a dependency with no type or token.


New Features

  • Added TypedElement to represent a statically parsed Typed.

  • TypedReader.parse() now returns a TypedElement.

  • Added $Typed, a TypeChecker for Typed.

  • Added TypedReader for parsing generic directive types.

  • Added support for void and Null types to appear in tokens.

  • Added DirectiveVisitor, and removed $HostBinding and $HostListener.

  • Added ModuleReader.extractProviderObjects to use in the view compiler.

  • Added logFine as a new top-level API.

  • Added an internal cli.dart library. See lib/cli.dart for details.

  • Added SplitDartEmitter for internal use.

  • Added $QueryList as a TypeChecker.

  • Expose the $Provider TypeChecker.

  • Added typeArgumentOf helper method.

  • Added support for recognizing the MultiToken type.

  • CompilerFlags now supports as a fast_boot argument; default is true.

  • ReflectorEmitter now takes an optional deferredModules{Source}.

  • Started adding experimental support for a new Module syntax.

Breaking Changes

  • CompilerFlags no longer parses and supports the 'debug' option and genDebugInfo is always false, and is deprecated pending removal in a future version.

  • Removes unused APIs of ComponentReader.

  • TokenReader no longer supports arbitrary const objects or literals.

  • Removed use_new_template_parser flag. The old parser was removed.

  • Removed $QueryList.

  • Added canRead to NgAssetReader.

  • Moved CompilerFlags and Profile to cli.dart.

  • linkToReference now requires a second parameter, a LibraryReader, and treats private types (i.e. prefixed with _) as dynamic as the compiler cannot point to them.

  • ReflectableEmitter has been completely replaced with a new implementation.

  • Removed all references and use of determining a "prefix" of a type. This was no longer used once ReflectableEmitter was re-written.

  • Removed a number of internal flags that were no longer strictly required.

  • ModuleReader.deduplicateProviders now returns a List not a Set, and providers that are multi are not removed, as it is a feature of the DI system to have multiple of them with the same token.

  • Add the TypeLink class, and replace uses of Uri.

  • @Component and @Directive annotated classes are no longer @Injectable. In practice this means they can no loger be provided as an implicit const Provider(FooComponent) without either manually adding @Injectable or refactoring your code. We found this didn't really affect users, and most uses of components and directives in these lists were accidental.

Bug Fixes

  • Fixed a bug where the compiler crashed after resolving a bound type failed.

  • Misspelled or otherwise erroneous annotations on classes now produce a more understandable error message, including the element that was annotated and the annotation that was not resolved.

  • Fix a bug where throwFailure hit an NPE without a stack trace.

  • linkTypeOf correctly resolves bound types (i.e. <T>) in most cases, and can fallback to dynamic otherwise.

  • Removed all remaining (invalid) references to package:barback.

  • Prevented a RangeError that occurred when an invalid import lacked an extension.

  • ReflectorEmitter now supports MultiToken and generic-typed tokens, with some known limitations. See

  • Fix a bug in the outliner that did not the correct output extension.


  • Always link to export "...template.dart" files in initReflector().
  • Catch missing field-formal (this.) fields and warn in the compiler.
  • Does not emit a registerDependencies function call for empty constructors.
  • initReflector() no longer treats @Pipe as an @Injectable service.


  • Fixed the outliner to instruct the analyzer to ignore unused imports.
  • Add NgAssetReader.


  • Various changes internal to the compiler.


  • Added various classes and helpers to form the new compile infrastructure:
    • ComponentReader
    • DependencyReader, DependencyInvocation, DependencyElement
    • ProviderReader, ProviderElement
    • TokenReader, TypeTokenElement, OpaqueTokenElement
    • getInheritanceHierarchy, urlOf
    • ReflectableReader, ReflectableOutput, ReflectableClass


  • Fixed a bug where flag entry_points was only allowed to be a list.


  • Initial commit of angular_compiler.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  angular_compiler: ^0.4.1

2. Install it

You can install packages from the command line:

with pub:

$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:angular_compiler/angular_compiler.dart';
Version Uploaded Documentation Archive
0.4.1 Oct 10, 2018 Go to the documentation of angular_compiler 0.4.1 Download angular_compiler 0.4.1 archive
0.4.0 Aug 7, 2018 Go to the documentation of angular_compiler 0.4.0 Download angular_compiler 0.4.0 archive
0.3.0+1 Jan 9, 2018 Go to the documentation of angular_compiler 0.3.0+1 Download angular_compiler 0.3.0+1 archive
0.3.0 Aug 24, 2017 Go to the documentation of angular_compiler 0.3.0 Download angular_compiler 0.3.0 archive
0.2.1 Aug 15, 2017 Go to the documentation of angular_compiler 0.2.1 Download angular_compiler 0.2.1 archive
0.2.0 Aug 7, 2017 Go to the documentation of angular_compiler 0.2.0 Download angular_compiler 0.2.0 archive
0.1.1 Jul 12, 2017 Go to the documentation of angular_compiler 0.1.1 Download angular_compiler 0.1.1 archive
0.1.0 Jul 11, 2017 Go to the documentation of angular_compiler 0.1.0 Download angular_compiler 0.1.0 archive
0.4.0-alpha+19 Aug 2, 2018 Go to the documentation of angular_compiler 0.4.0-alpha+19 Download angular_compiler 0.4.0-alpha+19 archive
0.4.0-alpha+18 Jul 19, 2018 Go to the documentation of angular_compiler 0.4.0-alpha+18 Download angular_compiler 0.4.0-alpha+18 archive

All 28 versions...

Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Dec 5, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.1.0
  • pana: 0.12.7


Detected platforms: other

Primary library: package:angular_compiler/angular_compiler.dart with components: io, build, mirrors.

Health suggestions

Fix lib/src/analyzer/di/dependencies.dart. (-1 points)

Analysis of lib/src/analyzer/di/dependencies.dart reported 2 hints:

line 97 col 35: 'parameterKind' is deprecated and shouldn't be used.

line 99 col 21: 'parameterKind' is deprecated and shouldn't be used.

Maintenance suggestions

The description is too short. (-20 points)

Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

Maintain an example. (-10 points)

Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use angular_compiler.dart.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0-dev.5.0 <3.0.0
analyzer ^0.33.0 0.33.6 0.34.0
args ^1.3.0 1.5.1
build >=0.12.7 <2.0.0 1.0.1
code_builder ^3.0.1 3.1.3
collection ^1.14.5 1.14.11
dart_style ^1.0.9 1.2.0 1.2.1
logging >=0.9.0 <0.12.0 0.11.3+2
meta ^1.1.4 1.1.6
path ^1.6.1 1.6.2
source_gen >=0.9.1 <0.10.0 0.9.1+3
source_span ^1.4.0 1.4.1
stack_trace ^1.9.1 1.9.3
Transitive dependencies
async 2.0.8
built_collection 4.1.0
built_value 6.1.6
charcode 1.1.2
convert 2.0.2
crypto 2.0.6
csslib 0.14.6
fixnum 0.10.9
front_end 0.1.6+8 0.1.7
glob 1.1.7
html 0.13.3+3
kernel 0.3.6+8 0.3.7
matcher 0.12.4
package_config 1.0.5
plugin 0.2.0+3
pub_semver 1.4.2
quiver 2.0.1
string_scanner 1.0.4
typed_data 1.1.6
utf 0.9.0+5
watcher 0.9.7+10
yaml 2.1.15
Dev dependencies
build_runner ^1.0.0
build_test ^0.10.2+5
test ^1.3.0