From 26872f60e69445e6812aee5f8075f852994396dd Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Mon, 23 Feb 2015 14:24:15 +0100 Subject: [PATCH] feat(ComponentUrlMapper): retrieve the base URL for components --- .../src/core/compiler/component_url_mapper.js | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 modules/angular2/src/core/compiler/component_url_mapper.js diff --git a/modules/angular2/src/core/compiler/component_url_mapper.js b/modules/angular2/src/core/compiler/component_url_mapper.js new file mode 100644 index 0000000000..050ee7f4c3 --- /dev/null +++ b/modules/angular2/src/core/compiler/component_url_mapper.js @@ -0,0 +1,31 @@ +import {Type, isPresent} from 'angular2/src/facade/lang'; +import {Map, MapWrapper} from 'angular2/src/facade/lang'; + +export class ComponentUrlMapper { + // Returns the url to the component source file. + // The returned url could be: + // - an absolute URL, + // - a URL relative to the application + getUrl(component: Type): string { + return './'; + } +} + +export class RuntimeComponentUrlMapper extends ComponentUrlMapper { + _componentUrls: Map; + + constructor() { + super(); + this._componentUrls = MapWrapper.create(); + } + + setComponentUrl(component: Type, url: string) { + MapWrapper.set(this._componentUrls, component, url); + } + + getUrl(component: Type): string { + var url = MapWrapper.get(this._componentUrls, component); + if (isPresent(url)) return url; + return super.getUrl(component); + } +}