import {Compiler, Compiler_} from 'angular2/src/core/linker/compiler'; import {HostViewFactoryRef, HostViewFactoryRef_} from 'angular2/src/core/linker/view_ref'; import {TemplateCompiler} from './template_compiler'; import {Injectable} from 'angular2/src/core/di'; import {Type} from 'angular2/src/facade/lang'; import {Promise, PromiseWrapper} from 'angular2/src/facade/async'; export abstract class RuntimeCompiler extends Compiler { abstract compileInHost(componentType: Type): Promise<HostViewFactoryRef>; abstract clearCache(); } @Injectable() export class RuntimeCompiler_ extends Compiler_ implements RuntimeCompiler { constructor(private _templateCompiler: TemplateCompiler) { super(); } compileInHost(componentType: Type): Promise<HostViewFactoryRef_> { return this._templateCompiler.compileHostComponentRuntime(componentType) .then(hostViewFactory => new HostViewFactoryRef_(hostViewFactory)); } clearCache() { super.clearCache(); this._templateCompiler.clearCache(); } }