b7a6f52d59
In previous version of tsickle abstract class methods were materialized. The change resulted in 6Kb savings in angular.io bundle. This change also required the removal of `@private` and `@return` type annotation as it is explicitly dissalowed by tsickle. NOTE: removed casts in front of `makeDecorator` due to: https://github.com/angular/devkit/issues/45 ``` 14938 Jul 19 13:16 0.b19e913fbdd6507d346b.chunk.js 1535 Jul 19 13:16 inline.d8e019ea3cfdd86c2bd0.bundle.js 589178 Jul 19 13:16 main.54c97bcb6f254776b678.bundle.js 34333 Jul 19 13:16 polyfills.4a3c9ca9481d53803157.bundle.js 14938 Jul 18 16:55 0.b19e913fbdd6507d346b.chunk.js 1535 Jul 18 16:55 inline.0c83abb44fad9a2768a7.bundle.js 582786 Jul 18 16:55 main.ea290db71b051813e156.bundle.js 34333 Jul 18 16:55 polyfills.4a3c9ca9481d53803157.bundle.js main savings: 589178 - 582786 = 6,392 ``` PR Close #18236 |
||
---|---|---|
.. | ||
src | ||
test | ||
README.md | ||
index.ts | ||
package.json | ||
tsconfig-build.json | ||
tsconfig.json |
README.md
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 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