31 lines
1.4 KiB
Markdown
31 lines
1.4 KiB
Markdown
# 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/@angular/tsc-wrapped/
|
|
$ npm login [angular]
|
|
$ npm publish dist/tools/@angular/tsc-wrapped
|
|
```
|