angular-cn/packages/router/src
Alex Rickabaugh 60aeee7abf feat(ivy): selector side of ModuleWithProviders via type metadata (#24862)
Within an @NgModule it's common to include in the imports a call to
a ModuleWithProviders function, for example RouterModule.forRoot().
The old ngc compiler was able to handle this pattern because it had
global knowledge of metadata of not only the input compilation unit
but also all dependencies.

The ngtsc compiler for Ivy doesn't have this knowledge, so the
pattern of ModuleWithProviders functions is more difficult. ngtsc
must be able to determine which module is imported via the function
in order to expand the selector scope and properly tree-shake
directives and pipes.

This commit implements a solution to this problem, by adding a type
parameter to ModuleWithProviders through which the actual module
type can be passed between compilation units.

The provider side isn't a problem because the imports are always
copied directly to the ngInjectorDef.

PR Close #24862
2018-07-20 11:48:35 -07:00
..
components fix(router): fix lazy loading of aux routes (#23459) 2018-06-13 11:20:20 -07:00
directives feat: typescript 2.9 support (#24652) 2018-07-03 13:32:06 -07:00
utils fix(router): don't use spread operator to workaround an issue in closure compiler (#22884) 2018-03-20 13:30:37 -07:00
apply_redirects.ts feat(core): upgrade rxjs to 6.0.0-alpha.4 (#22573) 2018-03-19 21:51:51 -07:00
config.ts fix(router): fix lazy loading of aux routes (#23459) 2018-06-13 11:20:20 -07:00
create_router_state.ts fix(router): cache route handle if found (#22475) 2018-04-23 13:35:59 -07:00
create_url_tree.ts fix(router): Update types for TypeScript nullability support 2017-04-18 12:07:33 -07:00
events.ts feat(router): implement scrolling restoration service (#20030) 2018-06-08 15:30:52 -07:00
index.ts feat(router): implement scrolling restoration service (#20030) 2018-06-08 15:30:52 -07:00
interfaces.ts docs: remove all deprecated `@stable` jsdoc tags (#23210) 2018-04-10 21:49:32 -07:00
pre_activation.ts feat(core): upgrade rxjs to 6.0.0-alpha.4 (#22573) 2018-03-19 21:51:51 -07:00
private_export.ts fix(router): fix lazy loading of aux routes (#23459) 2018-06-13 11:20:20 -07:00
recognize.ts fix(router): avoid freezing queryParams in-place (#22663) 2018-05-10 07:54:11 -07:00
route_reuse_strategy.ts docs(router): migrate deprecated `@whatItDoes` tags (#23187) 2018-04-05 09:29:08 -07:00
router.ts feat(router): add urlUpdateStrategy allow updating the browser URL at the beginning of navigation (#24820) 2018-07-12 14:40:08 -04:00
router_config_loader.ts fix(router): fix lazy loading of aux routes (#23459) 2018-06-13 11:20:20 -07:00
router_module.ts feat(ivy): selector side of ModuleWithProviders via type metadata (#24862) 2018-07-20 11:48:35 -07:00
router_outlet_context.ts docs: remove all deprecated `@stable` jsdoc tags (#23210) 2018-04-10 21:49:32 -07:00
router_preloader.ts build(bazel): Turning on strictPropertyInitialization for Angular. (#24572) 2018-06-25 07:57:13 -07:00
router_scroller.ts build(bazel): Turning on strictPropertyInitialization for Angular. (#24572) 2018-06-25 07:57:13 -07:00
router_state.ts build(bazel): Turning on strictPropertyInitialization for Angular. (#24572) 2018-06-25 07:57:13 -07:00
shared.ts docs: remove all deprecated `@stable` jsdoc tags (#23210) 2018-04-10 21:49:32 -07:00
url_handling_strategy.ts docs(router): migrate deprecated `@whatItDoes` tags (#23187) 2018-04-05 09:29:08 -07:00
url_tree.ts build: upgrade jasmine (and related typings) to latest version (#19904) 2018-07-06 13:48:02 -07:00
version.ts style: remove empty comments (#23404) 2018-05-10 15:48:13 -07:00