refactor(core): remove deprecated @Component.directives and @Component.pipes
BREAKING CHANGE: previously deprecated @Component.directives and @Component.pipes support was removed. All the components and pipes now must be declarated via an NgModule. NgModule is the basic compilation block passed into the Angular compiler via Compiler#compileModuleSync or #compileModuleAsync. Because of this change, the Compiler#compileComponentAsync and #compileComponentSync were removed as well - any code doing compilation should compile module instead using the apis mentioned above. Lastly, since modules are the basic compilation unit, the ngUpgrade module was modified to always require an NgModule to be passed into the UpgradeAdapter's constructor - previously this was optional.
This commit is contained in:
@ -11,8 +11,7 @@ import {ViewMetadata} from '../core_private';
|
||||
|
||||
import {DirectiveResolver} from '../src/directive_resolver';
|
||||
import {Map} from '../src/facade/collection';
|
||||
import {BaseException} from '../src/facade/exceptions';
|
||||
import {isArray, isPresent, stringify} from '../src/facade/lang';
|
||||
import {isArray, isPresent} from '../src/facade/lang';
|
||||
|
||||
|
||||
|
||||
@ -28,7 +27,6 @@ export class MockDirectiveResolver extends DirectiveResolver {
|
||||
private _views = new Map<Type<any>, ViewMetadata>();
|
||||
private _inlineTemplates = new Map<Type<any>, string>();
|
||||
private _animations = new Map<Type<any>, AnimationEntryMetadata[]>();
|
||||
private _directiveOverrides = new Map<Type<any>, Map<Type<any>, Type<any>>>();
|
||||
|
||||
constructor(private _injector: Injector) { super(); }
|
||||
|
||||
@ -67,13 +65,8 @@ export class MockDirectiveResolver extends DirectiveResolver {
|
||||
view = metadata;
|
||||
}
|
||||
|
||||
const directives: any[] = [];
|
||||
if (isPresent(view.directives)) {
|
||||
flattenArray(view.directives, directives);
|
||||
}
|
||||
let animations = view.animations;
|
||||
let templateUrl = view.templateUrl;
|
||||
const directiveOverrides = this._directiveOverrides.get(type);
|
||||
|
||||
const inlineAnimations = this._animations.get(type);
|
||||
if (isPresent(inlineAnimations)) {
|
||||
@ -87,17 +80,6 @@ export class MockDirectiveResolver extends DirectiveResolver {
|
||||
inlineTemplate = view.template;
|
||||
}
|
||||
|
||||
if (isPresent(directiveOverrides) && isPresent(view.directives)) {
|
||||
directiveOverrides.forEach((to, from) => {
|
||||
var srcIndex = directives.indexOf(from);
|
||||
if (srcIndex == -1) {
|
||||
throw new BaseException(
|
||||
`Overriden directive ${stringify(from)} not found in the template of ${stringify(type)}`);
|
||||
}
|
||||
directives[srcIndex] = to;
|
||||
});
|
||||
}
|
||||
|
||||
return new ComponentMetadata({
|
||||
selector: metadata.selector,
|
||||
inputs: metadata.inputs,
|
||||
@ -112,11 +94,9 @@ export class MockDirectiveResolver extends DirectiveResolver {
|
||||
entryComponents: metadata.entryComponents,
|
||||
template: inlineTemplate,
|
||||
templateUrl: templateUrl,
|
||||
directives: directives.length > 0 ? directives : null,
|
||||
animations: animations,
|
||||
styles: view.styles,
|
||||
styleUrls: view.styleUrls,
|
||||
pipes: view.pipes,
|
||||
encapsulation: view.encapsulation,
|
||||
interpolation: view.interpolation
|
||||
});
|
||||
@ -170,21 +150,6 @@ export class MockDirectiveResolver extends DirectiveResolver {
|
||||
this._animations.set(component, animations);
|
||||
this._clearCacheFor(component);
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides a directive from the component {@link ViewMetadata}.
|
||||
*/
|
||||
overrideViewDirective(component: Type<any>, from: Type<any>, to: Type<any>): void {
|
||||
var overrides = this._directiveOverrides.get(component);
|
||||
|
||||
if (!overrides) {
|
||||
overrides = new Map<Type<any>, Type<any>>();
|
||||
this._directiveOverrides.set(component, overrides);
|
||||
}
|
||||
|
||||
overrides.set(from, to);
|
||||
this._clearCacheFor(component);
|
||||
}
|
||||
}
|
||||
|
||||
function flattenArray(tree: any[], out: Array<Type<any>|any[]>): void {
|
||||
|
Reference in New Issue
Block a user