Using the global reflector made it impossible to compile multiple programs at the same time.
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google Inc. All Rights Reserved.
 | |
|  *
 | |
|  * Use of this source code is governed by an MIT-style license that can be
 | |
|  * found in the LICENSE file at https://angular.io/license
 | |
|  */
 | |
| 
 | |
| import {Type} from '../type';
 | |
| import {PlatformReflectionCapabilities} from './platform_reflection_capabilities';
 | |
| import {GetterFn, MethodFn, SetterFn} from './types';
 | |
| 
 | |
| export {PlatformReflectionCapabilities} from './platform_reflection_capabilities';
 | |
| export {GetterFn, MethodFn, SetterFn} from './types';
 | |
| 
 | |
| /**
 | |
|  * Provides access to reflection data about symbols. Used internally by Angular
 | |
|  * to power dependency injection and compilation.
 | |
|  */
 | |
| export class Reflector {
 | |
|   constructor(public reflectionCapabilities: PlatformReflectionCapabilities) {}
 | |
| 
 | |
|   updateCapabilities(caps: PlatformReflectionCapabilities) { this.reflectionCapabilities = caps; }
 | |
| 
 | |
|   factory(type: Type<any>): Function { return this.reflectionCapabilities.factory(type); }
 | |
| 
 | |
|   parameters(typeOrFunc: Type<any>): any[][] {
 | |
|     return this.reflectionCapabilities.parameters(typeOrFunc);
 | |
|   }
 | |
| 
 | |
|   annotations(typeOrFunc: Type<any>): any[] {
 | |
|     return this.reflectionCapabilities.annotations(typeOrFunc);
 | |
|   }
 | |
| 
 | |
|   propMetadata(typeOrFunc: Type<any>): {[key: string]: any[]} {
 | |
|     return this.reflectionCapabilities.propMetadata(typeOrFunc);
 | |
|   }
 | |
| 
 | |
|   hasLifecycleHook(type: any, lcProperty: string): boolean {
 | |
|     return this.reflectionCapabilities.hasLifecycleHook(type, lcProperty);
 | |
|   }
 | |
| 
 | |
|   getter(name: string): GetterFn { return this.reflectionCapabilities.getter(name); }
 | |
| 
 | |
|   setter(name: string): SetterFn { return this.reflectionCapabilities.setter(name); }
 | |
| 
 | |
|   method(name: string): MethodFn { return this.reflectionCapabilities.method(name); }
 | |
| 
 | |
|   importUri(type: any): string { return this.reflectionCapabilities.importUri(type); }
 | |
| 
 | |
|   resourceUri(type: any): string { return this.reflectionCapabilities.resourceUri(type); }
 | |
| 
 | |
|   resolveIdentifier(name: string, moduleUrl: string, members: string[], runtime: any): any {
 | |
|     return this.reflectionCapabilities.resolveIdentifier(name, moduleUrl, members, runtime);
 | |
|   }
 | |
| 
 | |
|   resolveEnum(identifier: any, name: string): any {
 | |
|     return this.reflectionCapabilities.resolveEnum(identifier, name);
 | |
|   }
 | |
| }
 |