Pete Bacon Darwin 0accd1e68d refactor(compiler-cli): implement DeclarationNode node type (#38959)
Previously the `ConcreteDeclaration` and `InlineDeclaration` had
different properties for the underlying node type. And the `InlineDeclaration`
did not store a value that represented its declaration.

It turns out that a natural declaration node for an inline type is the
expression. For example in UMD/CommonJS this would be the `exports.<name>`
property access node.

So this expression is now used for the `node` of `InlineDeclaration` types
and the `expression` property is dropped.

To support this the codebase has been refactored to use a new `DeclarationNode`
type which is a union of `ts.Declaration|ts.Expression` instead of `ts.Declaration`
throughout.

PR Close #38959
2020-10-12 08:32:46 -07:00
..

indexer

The indexer module generates semantic analysis about components used in an Angular project. The module is consumed by a semantic analysis API on an Angular program, which can be invoked separately from the regular Angular compilation pipeline.

The module is not a fully-featured source code indexer. Rather, it is designed to produce semantic information about an Angular project that can then be used by language analysis tools to generate, for example, cross-references in Angular templates.

The indexer module is developed primarily with the Kythe ecosystem in mind as an indexing service.

Scope of Analysis

The scope of analysis performed by the module includes

  • indexing template syntax identifiers in a component template
  • generating information about directives used in a template
  • generating metadata about component and template source files

The module does not support indexing TypeScript source code.