angular-cn/packages/core/test
JoostK 32ce8b1326 feat(compiler): add dependency info and ng-content selectors to metadata (#35695)
This commit augments the `FactoryDef` declaration of Angular decorated
classes to contain information about the parameter decorators used in
the constructor. If no constructor is present, or none of the parameters
have any Angular decorators, then this will be represented using the
`null` type. Otherwise, a tuple type is used where the entry at index `i`
corresponds with parameter `i`. Each tuple entry can be one of two types:

1. If the associated parameter does not have any Angular decorators,
   the tuple entry will be the `null` type.
2. Otherwise, a type literal is used that may declare at least one of
   the following properties:
   - "attribute": if `@Attribute` is present. The injected attribute's
   name is used as string literal type, or the `unknown` type if the
   attribute name is not a string literal.
   - "self": if `@Self` is present, always of type `true`.
   - "skipSelf": if `@SkipSelf` is present, always of type `true`.
   - "host": if `@Host` is present, always of type `true`.
   - "optional": if `@Optional` is present, always of type `true`.

   A property is only present if the corresponding decorator is used.

   Note that the `@Inject` decorator is currently not included, as it's
   non-trivial to properly convert the token's value expression to a
   type that is valid in a declaration file.

Additionally, the `ComponentDefWithMeta` declaration that is created for
Angular components has been extended to include all selectors on
`ng-content` elements within the component's template.

This additional metadata is useful for tooling such as the Angular
Language Service, as it provides the ability to offer suggestions for
directives/components defined in libraries. At the moment, such
tooling extracts the necessary information from the _metadata.json_
manifest file as generated by ngc, however this metadata representation
is being replaced by the information emitted into the declaration files.

Resolves FW-1870

PR Close #35695
2020-03-24 14:21:42 -07:00
..
acceptance fix(core): adhere to bootstrap options for JIT compiled components (#35534) 2020-03-19 08:57:39 -07:00
animation fix(animations): not waiting for child animations to finish when removing parent in Ivy (#34702) 2020-01-21 13:13:20 -05:00
bundling refactor(core): misc refactoring to support upcoming changes to improve synthetic host bindings (#35884) 2020-03-16 16:44:04 -07:00
change_detection style: enforce disallowance of object constructor (#33211) 2019-12-03 10:08:25 -08:00
debug fix(ivy): ensure eventListeners added outside angular context are not called... (#34514) 2020-01-22 15:38:13 -08:00
di test(core): check dependency in extended child (#34767) 2020-02-26 12:50:52 -08:00
dom refactor(core): move Meta methods that only have one version from DomAdapter (#32408) 2019-09-03 11:59:39 -07:00
i18n feat: i18n - include currency code in locale data (#32584) 2020-01-13 09:57:06 -08:00
linker test(core): re-enable IE 10/11 test on SauceLabs (#35962) 2020-03-24 10:14:47 -07:00
metadata test: clean up explicit dynamic query usages (#33015) 2019-10-17 16:10:10 -04:00
reflection fix(core): handle `undefined` meta in `injectArgs` (#31333) 2019-07-01 10:11:08 -07:00
render3 build: no longer run tslint from within gulp task (#35800) 2020-03-03 09:20:49 -08:00
sanitization fix(core): allow css custom variables/properties in the style sanitizer (#33841) 2019-11-20 14:47:59 -08:00
strict_types feat(compiler): add dependency info and ng-content selectors to metadata (#35695) 2020-03-24 14:21:42 -07:00
testability build: update zone.js to 0.9.0 (#28219) 2019-03-26 12:50:38 -07:00
util refactor(ivy): clean of #34804 from previous merge (#35022) 2020-01-29 16:35:08 -08:00
view build: derive ts_library dep from jasmine_node_test boostrap label if it ends in `_es5` (#34736) 2020-01-15 14:58:07 -05:00
zone fix(core): ngNoopZone should have the same signature with ngZone (#32068) 2019-10-04 11:48:12 -07:00
BUILD.bazel test(core): re-enable IE 10/11 test on SauceLabs (#35962) 2020-03-24 10:14:47 -07:00
application_init_spec.ts fix(ivy): Enable AoT tests to run on CI; disable failing tests (#26975) 2018-11-07 10:35:20 -08:00
application_module_spec.ts feat(common): allow default currency code to be configurable (#32584) 2020-01-13 09:57:06 -08:00
application_ref_integration_spec.ts fix(ivy): ensure that `window.ng` utilities are published when NgModules are used (#32725) 2019-09-17 13:32:06 -07:00
application_ref_spec.ts fix(ivy): ensure that `LOCALE_ID` is set after app initializers (#34830) 2020-01-17 16:23:49 -05:00
component_fixture_spec.ts test(ivy): update root causes for @angular/core TestBed failures (#27370) 2018-11-30 13:41:21 -08:00
dev_mode_spec.ts build(core): remove `main()` from specs (#21053) 2017-12-22 13:10:51 -08:00
directive_lifecycle_integration_spec.ts test(ivy): update root causes for @angular/core TestBed failures (#27419) 2018-12-03 08:19:56 -08:00
error_handler_spec.ts refactor(ivy): refactor more files in DI to prepare it for bazel packages (#28098) 2019-01-14 09:55:30 -08:00
event_emitter_spec.ts fix(core): fix proper propagation of subscriptions in EventEmitter (#22016) 2018-02-06 07:56:33 -08:00
fake_async_spec.ts feat: add an tickOptions parameter with property processNewMacroTasksSynchronously. (#33838) 2020-02-20 15:14:59 -08:00
forward_ref_integration_spec.ts refactor(core): Migrate TestBed.get to TestBed.inject (#32382) 2019-09-09 19:10:54 -04:00
spies.ts refactor: Move `dom_adapter.ts` to `@angular/common` (#32154) 2019-08-29 21:51:56 -07:00
test_bed_async_spec.ts fix(ivy): stub TestBed.compileComponents implementation (#26506) 2018-10-17 13:08:14 -07:00
test_bed_spec.ts fix(core): use proper configuration to compile Injectable in JIT (#35706) 2020-02-27 14:01:15 -08:00
testing_internal_spec.ts build: update to rules_typescript 0.25.1 (#28625) 2019-02-21 07:46:21 -08:00
util_spec.ts build: extract interface and util sub compilation from core (#28028) 2019-01-10 16:31:44 -08:00