refactor(ivy): remove ngBaseDef (#33264)

Removes `ngBaseDef` from the compiler and any runtime code that was still referring to it. In the cases where we'd previously generate a base def we now generate a definition for an abstract directive.

PR Close #33264
This commit is contained in:
crisbeto
2019-10-25 19:45:08 +02:00
committed by Andrew Kushnir
parent 3505692f75
commit 14c4b1b205
29 changed files with 310 additions and 660 deletions

View File

@ -97,17 +97,20 @@ export type ɵɵDirectiveDefWithMeta<
OutputMap extends{[key: string]: string}, QueryFields extends string[]> = DirectiveDef<T>;
/**
* Runtime information for classes that are inherited by components or directives
* that aren't defined as components or directives.
* Runtime link information for Directives.
*
* This is an internal data structure used by the renderer to determine what inputs
* and outputs should be inherited.
* This is an internal data structure used by the render to link
* directives into templates.
*
* See: {@link defineBase}
* NOTE: Always use `defineDirective` function to create this object,
* never create the object directly since the shape of this object
* can change between versions.
*
* @codeGenApi
* @param Selector type metadata specifying the selector of the directive or component
*
* See: {@link defineDirective}
*/
export interface ɵɵBaseDef<T> {
export interface DirectiveDef<T> {
/**
* A dictionary mapping the inputs' minified property names to their public API names, which
* are their aliases if any, or their original unminified property names
@ -144,23 +147,7 @@ export interface ɵɵBaseDef<T> {
* Refreshes host bindings on the associated directive.
*/
hostBindings: HostBindingsFunction<T>|null;
}
/**
* Runtime link information for Directives.
*
* This is internal data structure used by the render to link
* directives into templates.
*
* NOTE: Always use `defineDirective` function to create this object,
* never create the object directly since the shape of this object
* can change between versions.
*
* @param Selector type metadata specifying the selector of the directive or component
*
* See: {@link defineDirective}
*/
export interface DirectiveDef<T> extends ɵɵBaseDef<T> {
/** Token representing the directive. Used by DI. */
type: Type<T>;
@ -219,7 +206,7 @@ export type ɵɵFactoryDef<T> = () => T;
/**
* Runtime link information for Components.
*
* This is internal data structure used by the render to link
* This is an internal data structure used by the render to link
* components into templates.
*
* NOTE: Always use `defineComponent` function to create this object,
@ -331,7 +318,7 @@ export interface ComponentDef<T> extends DirectiveDef<T> {
/**
* Runtime link information for Pipes.
*
* This is internal data structure used by the renderer to link
* This is an internal data structure used by the renderer to link
* pipes into templates.
*
* NOTE: Always use `definePipe` function to create this object,