Module Catalog
ModuleCatalog in Silverlight

ModuleCatalog in Typescript
Last updated
Was this helpful?

Last updated
Was this helpful?
Was this helpful?
@injectable()
export class ModuleCatalog extends Object implements IModuleCatalog {
private items: SimpleList<ModuleInfo> = new SimpleList<ModuleInfo>();
/**
* Returns the module information list
*
* @readonly
* @type {SimpleList<ModuleInfo>}
* @memberof ModuleCatalog
*/
get Modules(): SimpleList<ModuleInfo> {
return this.items;
}
/**
* Adds a module to the catalog
*
* @param {ModuleInfo} moduleInfo
* @memberof ModuleCatalog
*/
AddModule(moduleInfo: ModuleInfo);
AddModule(runtimeTypeInfo: RuntimeTypeInfo, ...parameters: string[]);
AddModule(runtimeTypeInfo: RuntimeTypeInfo, initializationMode: ModuleInitializationMode, ...parameters: string[]);
AddModule(...parameters: any[]): any {
if (parameters.length === 1 && parameters[0] instanceof ModuleInfo) {
this.AddModuleToCatalog(parameters[0]);
} else if (parameters.length && parameters[0] instanceof RuntimeTypeInfo) {
const moduleInfo = new ModuleInfo();
moduleInfo.ModuleName = parameters[0].Name;
moduleInfo.ModuleType = parameters[0].FullName;
moduleInfo.RuntimeTypeInfo = parameters[0]
moduleInfo.DependsOn = new SimpleList<string>();
if (parameters.length > 1) {
let dependsPosition = 1;
if (typeof parameters[1] === 'number') {
dependsPosition = 2;
}
for (let i = dependsPosition; i < parameters.length; i++) {
if (typeof parameters[i] === 'string') {
moduleInfo.DependsOn.add(parameters[i]);
}
}
}
this.AddModuleToCatalog(moduleInfo);
} else {
throw new Error('Unsupported overload for AddModule');
}
}
AddModuleToCatalog(module: ModuleInfo): any {
this.items.add(module);
}
}