From 29700aa188198724da1b80d01a6cdcf161733c9f Mon Sep 17 00:00:00 2001 From: Tobias Bosch Date: Wed, 4 May 2016 09:11:04 -0700 Subject: [PATCH] feat(metadata): emit all methods This is needed to detect lifecycle hooks. --- tools/metadata/src/collector.ts | 24 +++++++++++------------- tools/metadata/test/collector.spec.ts | 13 ++++++++----- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/tools/metadata/src/collector.ts b/tools/metadata/src/collector.ts index 2c7764515a..8c0089fca2 100644 --- a/tools/metadata/src/collector.ts +++ b/tools/metadata/src/collector.ts @@ -131,20 +131,18 @@ export class MetadataCollector { hasParameterData = true; } } - if (methodDecorators || hasDecoratorData || hasParameterData) { - const data: MethodMetadata = {__symbolic: isConstructor ? "constructor" : "method"}; - const name = isConstructor ? "__ctor__" : evaluator.nameOf(member.name); - if (methodDecorators) { - data.decorators = methodDecorators; - } - if (hasDecoratorData) { - data.parameterDecorators = parameterDecoratorData; - } - if (hasParameterData) { - (data).parameters = parametersData; - } - recordMember(name, data); + const data: MethodMetadata = {__symbolic: isConstructor ? "constructor" : "method"}; + const name = isConstructor ? "__ctor__" : evaluator.nameOf(member.name); + if (methodDecorators) { + data.decorators = methodDecorators; } + if (hasDecoratorData) { + data.parameterDecorators = parameterDecoratorData; + } + if (hasParameterData) { + (data).parameters = parametersData; + } + recordMember(name, data); break; case ts.SyntaxKind.PropertyDeclaration: case ts.SyntaxKind.GetAccessor: diff --git a/tools/metadata/test/collector.spec.ts b/tools/metadata/test/collector.spec.ts index 42f9b4d294..74471e56dd 100644 --- a/tools/metadata/test/collector.spec.ts +++ b/tools/metadata/test/collector.spec.ts @@ -146,7 +146,10 @@ describe('Collector', () => { parameters: [{__symbolic: 'reference', name: undefined, module: './hero.service'}] } - ] + ], + onSelect: [{__symbolic: 'method'}], + ngOnInit: [{__symbolic: 'method'}], + getHeroes: [{__symbolic: 'method'}] } } } @@ -232,7 +235,7 @@ const FILES: Directory = { import HeroService from './hero.service'; // thrown away import 'angular2/core'; - + @MyComponent({ selector: 'my-app', template:` + "`" + ` @@ -336,7 +339,7 @@ const FILES: Directory = { export class CaseAny { constructor(param: any) {} } - + @Injectable() export class GetProp { private _name: string; @@ -344,7 +347,7 @@ const FILES: Directory = { return this._name; } } - + @Injectable() export class SetProp { private _name: string; @@ -352,7 +355,7 @@ const FILES: Directory = { this._name = value; } } - + @Injectable() export class FullProp { private _name: string;