Go to file
Alex Rickabaugh 1c39ad38d3 feat(ivy): reference external classes by their exported name (#27743)
Previously, ngtsc would assume that a given directive/pipe being imported
from an external package was importable using the same name by which it
was declared. This isn't always true; sometimes a package will export a
directive under a different name. For example, Angular frequently prefixes
directive names with the 'ɵ' character to indicate that they're part of
the package's private API, and not for public consumption.

This commit introduces the TsReferenceResolver class which, given a
declaration to import and a module name to import it from, can determine
the exported name of the declared class within the module. This allows
ngtsc to pick the correct name by which to import the class instead of
making assumptions about how it was exported.

This resolver is used to select a correct symbol name when creating an
AbsoluteReference.

FW-517 #resolve
FW-536 #resolve

PR Close #27743
2019-01-08 16:36:18 -08:00
.buildkite ci: update recommended buildkite VM (#27728) 2019-01-08 10:30:54 -08:00
.circleci ci: compute commit range for rerun workflows (#27775) 2019-01-08 10:37:59 -08:00
.github ci: fix public api rule in codeowners (#27999) 2019-01-08 15:56:13 -08:00
aio docs: update rxjs example and change fromPromise to from (#27443) 2019-01-08 16:15:53 -08:00
docs build: remove "test.sh" script (#27937) 2019-01-07 15:35:09 -08:00
integration test: fix outDir in TS 3.2 integration test (#27774) 2019-01-08 16:00:26 -08:00
modules build: remove "build.sh" script (#27937) 2019-01-07 15:35:09 -08:00
packages feat(ivy): reference external classes by their exported name (#27743) 2019-01-08 16:36:18 -08:00
scripts ci: remove travis ci setup (#27937) 2019-01-07 15:35:09 -08:00
third_party/github.com/bazelbuild/bazel-toolchains/bazelrc build: update to Bazel 0.21.0 (#27935) 2019-01-04 18:38:44 -08:00
tools feat(forms): export NumberValueAccessor & RangeValueAccessor directives (#27743) 2019-01-08 16:36:18 -08:00
.bazelignore build: add aio/tools/examples/shared/node_modules to .bazelignore (#27278) 2018-11-27 10:30:58 -08:00
.bazelrc build: update to Bazel 0.21.0 (#27935) 2019-01-04 18:38:44 -08:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.gitattributes chore: force lf EOL for ts files (#11143) 2016-08-29 12:41:58 -07:00
.gitignore build: introduce remote bazel caching (#27358) 2018-12-06 11:25:03 -08:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.nvmrc build: update .nvmrc file to correct node version (#25992) 2018-09-18 13:11:58 -07:00
BUILD.bazel build: load angular.js minified output in upgrade tests (#27711) 2018-12-18 09:29:27 -08:00
CHANGELOG.md docs: group fixes and features for 7.2.0 in changelog desc (#27974) 2019-01-08 11:28:27 -08:00
CODE_OF_CONDUCT.md docs: fix community tab in GitHub by copying CoC 2018-02-27 19:02:30 -08:00
CONTRIBUTING.md docs: update SAVED_REPLIES and CONTRIBUTING with new issue templates (#27608) 2018-12-11 16:43:57 -08:00
LICENSE docs(common): update copyright years (#21232) 2018-01-04 17:45:36 -05:00
README.md docs: remove Travis status from README (#27973) 2019-01-08 10:38:34 -08:00
WORKSPACE build: enforce minimum Bazel version of 0.21.0 in WORKSPACE so cache works with `yarn bazel` (#27935) 2019-01-04 18:38:44 -08:00
browser-providers.conf.js feat(elements): enable Shadow DOM v1 and slots (#24861) 2018-08-30 21:33:14 -07:00
gulpfile.js build: remove obsolete gulp build task (#27386) 2018-12-05 20:55:32 -08:00
index.bzl style: format .bzl files with buildifier (#23544) 2018-08-08 13:12:07 -07:00
karma-js.conf.js ci: move local and saucelabs unit tests to circle (#27937) 2019-01-07 15:35:09 -08:00
package.json ci: move e2e tests from travis to circleci (#27937) 2019-01-07 15:35:09 -08:00
protractor-e2e.conf.js ci: run legacy e2e tests in parallel (#27937) 2019-01-07 15:35:09 -08:00
protractor-examples-e2e.conf.js ci: run legacy e2e tests in parallel (#27937) 2019-01-07 15:35:09 -08:00
protractor-perf.conf.js ci: configure chrome options for protractor (#26735) 2018-10-26 14:48:05 -04:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files (#12035)" 2016-10-04 14:06:41 -07:00
test-events.js fix(platform-browser): run BLACK_LISTED_EVENTS outside of ngZone (#18993) 2017-09-05 15:33:22 -05:00
test-main.js refactor(core): remove withBody from public testing API (#25171) 2018-07-31 15:09:32 -07:00
tslint.json style: tslint enforces no debugger statements left behind (#25532) 2018-08-16 16:00:22 -07:00
yarn.lock ci: move e2e tests from travis to circleci (#27937) 2019-01-07 15:35:09 -08:00
yarn.lock.readme.md docs: replace npm with yarn in lockfile readme (#25309) 2018-08-06 13:38:13 -07:00

README.md

CircleCI BrowserStack Status Join the chat at https://gitter.im/angular/angular npm version

Angular

Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Changelog

Learn about the latest improvements.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.