refactor(Directive): drop moduleId
moduleId is only used by components to resolve urls. Directives have no templates and do not need moduleId. Closes #5873
This commit is contained in:
@ -32,12 +32,13 @@ export class RuntimeMetadataResolver {
|
||||
var meta = this._cache.get(directiveType);
|
||||
if (isBlank(meta)) {
|
||||
var dirMeta = this._directiveResolver.resolve(directiveType);
|
||||
var moduleUrl = calcModuleUrl(directiveType, dirMeta);
|
||||
var moduleUrl = null;
|
||||
var templateMeta = null;
|
||||
var changeDetectionStrategy = null;
|
||||
|
||||
if (dirMeta instanceof md.ComponentMetadata) {
|
||||
var cmpMeta = <md.ComponentMetadata>dirMeta;
|
||||
moduleUrl = calcModuleUrl(directiveType, cmpMeta);
|
||||
var viewMeta = this._viewResolver.resolve(directiveType);
|
||||
templateMeta = new cpl.CompileTemplateMetadata({
|
||||
encapsulation: viewMeta.encapsulation,
|
||||
@ -107,8 +108,8 @@ function isValidDirective(value: Type): boolean {
|
||||
return isPresent(value) && (value instanceof Type);
|
||||
}
|
||||
|
||||
function calcModuleUrl(type: Type, dirMeta: md.DirectiveMetadata): string {
|
||||
var moduleId = dirMeta.moduleId;
|
||||
function calcModuleUrl(type: Type, cmpMetadata: md.ComponentMetadata): string {
|
||||
var moduleId = cmpMetadata.moduleId;
|
||||
if (isPresent(moduleId)) {
|
||||
var scheme = getUrlScheme(moduleId);
|
||||
return isPresent(scheme) && scheme.length > 0 ? moduleId :
|
||||
|
@ -132,7 +132,6 @@ export class DirectiveResolver {
|
||||
outputs: mergedOutputs,
|
||||
host: mergedHost,
|
||||
exportAs: dm.exportAs,
|
||||
moduleId: dm.moduleId,
|
||||
queries: mergedQueries,
|
||||
providers: dm.providers
|
||||
});
|
||||
|
@ -27,7 +27,6 @@ class Directive extends DirectiveMetadata {
|
||||
List bindings,
|
||||
List providers,
|
||||
String exportAs,
|
||||
String moduleId,
|
||||
Map<String, dynamic> queries})
|
||||
: super(
|
||||
selector: selector,
|
||||
@ -39,7 +38,6 @@ class Directive extends DirectiveMetadata {
|
||||
bindings: bindings,
|
||||
providers: providers,
|
||||
exportAs: exportAs,
|
||||
moduleId: moduleId,
|
||||
queries: queries);
|
||||
}
|
||||
|
||||
|
@ -146,7 +146,6 @@ export interface DirectiveFactory {
|
||||
bindings?: any[],
|
||||
providers?: any[],
|
||||
exportAs?: string,
|
||||
moduleId?: string,
|
||||
queries?: {[key: string]: any}
|
||||
}): DirectiveDecorator;
|
||||
new (obj: {
|
||||
@ -159,7 +158,6 @@ export interface DirectiveFactory {
|
||||
bindings?: any[],
|
||||
providers?: any[],
|
||||
exportAs?: string,
|
||||
moduleId?: string,
|
||||
queries?: {[key: string]: any}
|
||||
}): DirectiveMetadata;
|
||||
}
|
||||
|
@ -696,26 +696,6 @@ export class DirectiveMetadata extends InjectableMetadata {
|
||||
*/
|
||||
exportAs: string;
|
||||
|
||||
/**
|
||||
* The module id of the module that contains the directive.
|
||||
* Needed to be able to resolve relative urls for templates and styles.
|
||||
* In Dart, this can be determined automatically and does not need to be set.
|
||||
* In CommonJS, this can always be set to `module.id`.
|
||||
*
|
||||
* ## Simple Example
|
||||
*
|
||||
* ```
|
||||
* @Directive({
|
||||
* selector: 'someDir',
|
||||
* moduleId: module.id
|
||||
* })
|
||||
* class SomeDir {
|
||||
* }
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
moduleId: string;
|
||||
|
||||
// TODO: add an example after ContentChildren and ViewChildren are in master
|
||||
/**
|
||||
* Configures the queries that will be injected into the directive.
|
||||
@ -752,7 +732,7 @@ export class DirectiveMetadata extends InjectableMetadata {
|
||||
queries: {[key: string]: any};
|
||||
|
||||
constructor({selector, inputs, outputs, properties, events, host, bindings, providers, exportAs,
|
||||
moduleId, queries}: {
|
||||
queries}: {
|
||||
selector?: string,
|
||||
inputs?: string[],
|
||||
outputs?: string[],
|
||||
@ -762,7 +742,6 @@ export class DirectiveMetadata extends InjectableMetadata {
|
||||
providers?: any[],
|
||||
/** @deprecated */ bindings?: any[],
|
||||
exportAs?: string,
|
||||
moduleId?: string,
|
||||
queries?: {[key: string]: any}
|
||||
} = {}) {
|
||||
super();
|
||||
@ -773,7 +752,6 @@ export class DirectiveMetadata extends InjectableMetadata {
|
||||
this._events = events;
|
||||
this.host = host;
|
||||
this.exportAs = exportAs;
|
||||
this.moduleId = moduleId;
|
||||
this.queries = queries;
|
||||
this._providers = providers;
|
||||
this._bindings = bindings;
|
||||
@ -865,6 +843,26 @@ export class ComponentMetadata extends DirectiveMetadata {
|
||||
private _viewProviders: any[];
|
||||
private _viewBindings: any[];
|
||||
|
||||
/**
|
||||
* The module id of the module that contains the component.
|
||||
* Needed to be able to resolve relative urls for templates and styles.
|
||||
* In Dart, this can be determined automatically and does not need to be set.
|
||||
* In CommonJS, this can always be set to `module.id`.
|
||||
*
|
||||
* ## Simple Example
|
||||
*
|
||||
* ```
|
||||
* @Directive({
|
||||
* selector: 'someDir',
|
||||
* moduleId: module.id
|
||||
* })
|
||||
* class SomeDir {
|
||||
* }
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
moduleId: string;
|
||||
|
||||
templateUrl: string;
|
||||
|
||||
template: string;
|
||||
@ -913,7 +911,6 @@ export class ComponentMetadata extends DirectiveMetadata {
|
||||
events: events,
|
||||
host: host,
|
||||
exportAs: exportAs,
|
||||
moduleId: moduleId,
|
||||
bindings: bindings,
|
||||
providers: providers,
|
||||
queries: queries
|
||||
@ -929,6 +926,7 @@ export class ComponentMetadata extends DirectiveMetadata {
|
||||
this.directives = directives;
|
||||
this.pipes = pipes;
|
||||
this.encapsulation = encapsulation;
|
||||
this.moduleId = moduleId;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,6 @@ export class MockDirectiveResolver extends DirectiveResolver {
|
||||
host: dm.host,
|
||||
providers: providers,
|
||||
exportAs: dm.exportAs,
|
||||
moduleId: dm.moduleId,
|
||||
queries: dm.queries
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user