angular/packages/compiler-cli/src/transformers
Alex Rickabaugh c1392ce618 feat(ivy): produce and consume ES2015 re-exports for NgModule re-exports (#28852)
In certain configurations (such as the g3 repository) which have lots of
small compilation units as well as strict dependency checking on generated
code, ngtsc's default strategy of directly importing directives/pipes into
components will not work. To handle these cases, an additional mode is
introduced, and is enabled when using the FileToModuleHost provided by such
compilation environments.

In this mode, when ngtsc encounters an NgModule which re-exports another
from a different file, it will re-export all the directives it contains at
the ES2015 level. The exports will have a predictable name based on the
FileToModuleHost. For example, if the host says that a directive Foo is
from the 'root/external/foo' module, ngtsc will add:

```
export {Foo as ɵng$root$external$foo$$Foo} from 'root/external/foo';
```

Consumers of the re-exported directive will then import it via this path
instead of directly from root/external/foo, preserving strict dependency
semantics.

PR Close #28852
2019-02-22 12:15:58 -08:00
..
api.ts feat(compiler-cli): make enableIvy ngtsc/true equivalent (#28616) 2019-02-19 12:28:44 -08:00
compiler_host.ts feat(ivy): produce and consume ES2015 re-exports for NgModule re-exports (#28852) 2019-02-22 12:15:58 -08:00
entry_points.ts Revert "Revert "Revert "perf(compiler): skip type check and emit in bazel in some cases. (#19646)""" 2017-10-12 16:09:49 -07:00
inline_resources.ts fix(compiler-cli): enableResourceInlining handles both styles and styleUrls (#22688) 2018-03-11 22:14:32 -07:00
lower_expressions.ts feat: add TypeScript 3 support (#25275) 2018-08-27 21:07:53 -04:00
metadata_cache.ts fix(compiler-cli): strictMetadataEmit should not break on non-compliant libraries (#23275) 2018-04-09 15:35:23 -07:00
metadata_reader.ts fix(compiler-cli): propagate ts.SourceFile moduleName into metadata 2017-12-01 14:19:06 -08:00
nocollapse_hack.ts fix(ivy): add @nocollapse when writing closure-annotated code (#25775) 2018-09-11 06:53:21 -07:00
node_emitter.ts fix(ivy): use 'typeof' and 'never' for type metadata (#24862) 2018-07-20 11:48:36 -07:00
node_emitter_transform.ts fix(compiler-cli): merge @fileoverview comments. (#20870) 2017-12-12 11:37:55 -08:00
program.ts feat(compiler-cli): make enableIvy ngtsc/true equivalent (#28616) 2019-02-19 12:28:44 -08:00
r3_metadata_transform.ts feat(compiler-cli): reflect static methods added to classes in metadata (#21926) 2018-02-01 08:30:58 -08:00
r3_strip_decorators.ts feat(ivy): @NgModule -> ngInjectorDef compilation (#22458) 2018-03-16 12:57:11 -07:00
r3_transform.ts feat: change @Injectable() to support tree-shakeable tokens (#22005) 2018-02-12 14:34:59 -08:00
tsc_pass_through.ts refactor(ivy): obviate the Bazel component of the ivy_switch (#26550) 2018-10-19 09:23:05 -07:00
util.ts feat: change @Injectable() to support tree-shakeable tokens (#22005) 2018-02-12 14:34:59 -08:00