Go to file
Pete Bacon Darwin 08de52b9f0 feat(ivy): add source mappings to compiled Angular templates (#28055)
During analysis, the `ComponentDecoratorHandler` passes the component
template to the `parseTemplate()` function. Previously, there was little or
no information about the original source file, where the template is found,
passed when calling this function.

Now, we correctly compute the URL of the source of the template, both
for external `templateUrl` and in-line `template` cases. Further in the
in-line template case we compute the character range of the template
in its containing source file; *but only in the case that the template is
a simple string literal*. If the template is actually a dynamic value like
an interpolated string or a function call, then we do not try to add the
originating source file information.

The translator that converts Ivy AST nodes to TypeScript now adds these
template specific source mappings, which account for the file where
the template was found, to the templates to support stepping through the
template creation and update code when debugging an Angular application.

Note that some versions of TypeScript have a bug which means they cannot
support external template source-maps. We check for this via the
`canSourceMapExternalTemplates()` helper function and avoid trying to
add template mappings to external templates if not supported.

PR Close #28055
2019-02-12 20:58:28 -08:00
.buildkite ci: update buildkite provision instructions (#28273) 2019-02-07 12:36:27 -08:00
.circleci ci(docs-infra): test docs examples with Ivy (#28463) 2019-02-11 17:16:52 +00:00
.github ci: add all required statuses to the requiredStatuses list for angular-robot (#28613) 2019-02-08 09:20:28 -08:00
.vscode build: show no warning for large git repos (#28055) 2019-02-12 20:58:27 -08:00
aio build(docs-infra): upgrade cli command docs sources to ba5120d18 (#28629) 2019-02-11 14:51:49 -08:00
docs docs: update merge label meaning (#28574) 2019-02-08 09:21:04 -08:00
integration ci: do not install firebase-tools without cache (#28615) 2019-02-08 10:23:19 -08:00
modules build: remove outdated polymer tree benchmark (#28568) 2019-02-08 13:37:36 -08:00
packages feat(ivy): add source mappings to compiled Angular templates (#28055) 2019-02-12 20:58:28 -08:00
scripts refactor(ivy): rename "blacklist" to "blocklist" (#28536) 2019-02-05 14:06:15 -05:00
third_party docs: add a README for third_party usage (#28651) 2019-02-12 09:54:43 -08:00
tools test(ivy): update root causes for autocomplete tests (#28657) 2019-02-12 09:47:20 -08:00
.bazelignore build: update to rules_typescript 0.23.2 and rules_nodejs 0.16.8 (#28532) 2019-02-05 16:55:43 -05:00
.bazelrc build(bazel): update to bazel 0.22.0 and turn on --incompatible_strict_action_env flag (#28404) 2019-01-28 11:48:41 -08:00
.clang-format
.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: update and unify gitignore (#28316) 2019-01-23 10:55:21 -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 release: cut the v8.0.0-beta.3 release 2019-02-05 20:02:00 -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 build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00
LICENSE build: bump year (#27880) 2019-01-11 11:15:59 -08:00
README.md docs: update link for CircleCI badge to point workflow 2019-02-07 14:14:59 -08:00
WORKSPACE build: remove all deps on io_bazel_rules_go (#28532) 2019-02-05 16:55:43 -05:00
browser-providers.conf.js build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00
gulpfile.js build: `gulp format` only changed lines by default (#28411) 2019-02-04 16:49:16 -05: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: downgrade to sauce-connect v4.5.1 (#28659) 2019-02-12 17:23:37 -08:00
protractor-e2e.conf.js build: re-enable disabled e2e tests (#27979) 2019-01-09 10:41:16 -08:00
protractor-perf.conf.js build: unable to run perf bazel e2e tests on windows (#28568) 2019-02-08 13:37:36 -08: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: downgrade to sauce-connect v4.5.1 (#28659) 2019-02-12 17:23:37 -08:00
yarn.lock.readme.md build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08: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.