refactor(compiler): remove obsolete @View-related code (#9019)

This commit is contained in:
Pawel Kozlowski 2016-06-05 04:46:55 +02:00 committed by Miško Hevery
parent 057abefe50
commit 52ddc96c9f
2 changed files with 3 additions and 59 deletions

View File

@ -42,46 +42,18 @@ export class ViewResolver {
/** @internal */ /** @internal */
_resolve(component: Type): ViewMetadata { _resolve(component: Type): ViewMetadata {
var compMeta: ComponentMetadata; var compMeta: ComponentMetadata;
var viewMeta: ViewMetadata;
this._reflector.annotations(component).forEach(m => { this._reflector.annotations(component).forEach(m => {
if (m instanceof ViewMetadata) {
viewMeta = m;
}
if (m instanceof ComponentMetadata) { if (m instanceof ComponentMetadata) {
compMeta = m; compMeta = m;
} }
}); });
if (isPresent(compMeta)) { if (isPresent(compMeta)) {
if (isBlank(compMeta.template) && isBlank(compMeta.templateUrl) && isBlank(viewMeta)) { if (isBlank(compMeta.template) && isBlank(compMeta.templateUrl)) {
throw new BaseException( throw new BaseException(
`Component '${stringify(component)}' must have either 'template' or 'templateUrl' set.`); `Component '${stringify(component)}' must have either 'template' or 'templateUrl' set.`);
} else if (isPresent(compMeta.template) && isPresent(viewMeta)) {
this._throwMixingViewAndComponent("template", component);
} else if (isPresent(compMeta.templateUrl) && isPresent(viewMeta)) {
this._throwMixingViewAndComponent("templateUrl", component);
} else if (isPresent(compMeta.directives) && isPresent(viewMeta)) {
this._throwMixingViewAndComponent("directives", component);
} else if (isPresent(compMeta.pipes) && isPresent(viewMeta)) {
this._throwMixingViewAndComponent("pipes", component);
} else if (isPresent(compMeta.encapsulation) && isPresent(viewMeta)) {
this._throwMixingViewAndComponent("encapsulation", component);
} else if (isPresent(compMeta.styles) && isPresent(viewMeta)) {
this._throwMixingViewAndComponent("styles", component);
} else if (isPresent(compMeta.styleUrls) && isPresent(viewMeta)) {
this._throwMixingViewAndComponent("styleUrls", component);
} else if (isPresent(viewMeta)) {
return viewMeta;
} else { } else {
return new ViewMetadata({ return new ViewMetadata({
templateUrl: compMeta.templateUrl, templateUrl: compMeta.templateUrl,
@ -95,19 +67,9 @@ export class ViewResolver {
}); });
} }
} else { } else {
if (isBlank(viewMeta)) {
throw new BaseException( throw new BaseException(
`Could not compile '${stringify(component)}' because it is not a component.`); `Could not compile '${stringify(component)}' because it is not a component.`);
} else {
return viewMeta;
}
} }
return null;
} }
/** @internal */
_throwMixingViewAndComponent(propertyName: string, component: Type): void {
throw new BaseException(
`Component '${stringify(component)}' cannot have both '${propertyName}' and '@View' set at the same time"`);
}
} }

View File

@ -5,16 +5,6 @@ import {Component, ViewMetadata} from '@angular/core/src/metadata';
class SomeDir {} class SomeDir {}
class SomePipe {} class SomePipe {}
@Component({
selector: 'sample',
template: "some template",
directives: [SomeDir],
pipes: [SomePipe],
styles: ["some styles"]
})
class ComponentWithView {
}
@Component({ @Component({
selector: 'sample', selector: 'sample',
template: "some template", template: "some template",
@ -25,14 +15,6 @@ class ComponentWithView {
class ComponentWithTemplate { class ComponentWithTemplate {
} }
@Component({selector: 'sample', template: "some template"})
class ComponentWithViewTemplate {
}
@Component({selector: 'sample', templateUrl: "some template url", template: "some template"})
class ComponentWithViewTemplateUrl {
}
@Component({selector: 'sample'}) @Component({selector: 'sample'})
class ComponentWithoutView { class ComponentWithoutView {
} }
@ -57,13 +39,13 @@ export function main() {
})); }));
}); });
it('should throw when Component has no View decorator and no template is set', () => { it('should throw when Component has neither template nor templateUrl set', () => {
expect(() => resolver.resolve(ComponentWithoutView)) expect(() => resolver.resolve(ComponentWithoutView))
.toThrowErrorWith( .toThrowErrorWith(
"Component 'ComponentWithoutView' must have either 'template' or 'templateUrl' set"); "Component 'ComponentWithoutView' must have either 'template' or 'templateUrl' set");
}); });
it('should throw when simple class has no View decorator and no template is set', () => { it('should throw when simple class has no component decorator', () => {
expect(() => resolver.resolve(SimpleClass)) expect(() => resolver.resolve(SimpleClass))
.toThrowErrorWith("Could not compile 'SimpleClass' because it is not a component."); .toThrowErrorWith("Could not compile 'SimpleClass' because it is not a component.");
}); });