# tsc-wrapped

This package is an internal dependency used by @angular/compiler-cli. Please use that instead.

This is a wrapper around TypeScript's `tsc` program that allows us to hook in extra extensions.
TypeScript will eventually have an extensibility model for arbitrary extensions. We don't want
to constrain their design with baggage from a legacy implementation, so this wrapper only
supports specific extensions developed by the Angular team:

- tsickle down-levels Decorators into Annotations so they can be tree-shaken
- tsickle can also optionally produce Closure Compiler-friendly code
- ./collector.ts emits an extra `.metadata.json` file for every `.d.ts` file written, 
  which retains metadata about decorators that is lost in the TS emit
- @angular/compiler-cli extends this library to additionally generate template code

## TypeScript Decorator metadata collector

The `.d.ts` format does not preserve information about the Decorators applied to symbols.
Some tools, such as Angular 2 template compiler, need access to statically analyzable
information about Decorators, so this library allows programs to produce a `foo.metadata.json`
to accompany a `foo.d.ts` file, and preserves the information that was lost in the declaration
emit.

## Releasing
```
$ $(npm bin)/tsc -p tools
$ cp tools/tsc-wrapped/package.json dist/tools/tsc-wrapped/
$ npm login [angular]
$ npm publish dist/tools/tsc-wrapped
```
