in src/extension.ts [219:339]
function initDigitalTwin(context: vscode.ExtensionContext, outputChannel: vscode.OutputChannel): void {
const colorizedChannel = new ColorizedChannel(Constants.CHANNEL_NAME);
context.subscriptions.push(colorizedChannel);
const deviceModelManager = new DeviceModelManager(context, colorizedChannel);
const modelRepositoryManager = new ModelRepositoryManager(context, Constants.WEB_VIEW_PATH, colorizedChannel);
DigitalTwinUtility.init(modelRepositoryManager, outputChannel);
initIntelliSense(context, telemetryWorker);
initDigitalTwinCommand(
context,
telemetryWorker,
colorizedChannel,
true,
Command.CreateInterface,
async (): Promise<void> => {
return deviceModelManager.createModel(ModelType.Interface);
}
);
initDigitalTwinCommand(
context,
telemetryWorker,
colorizedChannel,
true,
Command.CreateCapabilityModel,
async (): Promise<void> => {
return deviceModelManager.createModel(ModelType.CapabilityModel);
}
);
initDigitalTwinCommand(
context,
telemetryWorker,
colorizedChannel,
true,
Command.OpenRepository,
async (): Promise<void> => {
return modelRepositoryManager.signIn();
}
);
initDigitalTwinCommand(
context,
telemetryWorker,
colorizedChannel,
true,
Command.SignOutRepository,
async (): Promise<void> => {
return modelRepositoryManager.signOut();
}
);
initDigitalTwinCommand(
context,
telemetryWorker,
colorizedChannel,
true,
Command.SubmitFiles,
async (telemetryContext: TelemetryContext): Promise<void> => {
return modelRepositoryManager.submitFiles(telemetryContext);
}
);
initDigitalTwinCommand(
context,
telemetryWorker,
colorizedChannel,
false,
Command.DeleteModels,
async (publicRepository: boolean, modelIds: string[]): Promise<void> => {
return modelRepositoryManager.deleteModels(publicRepository, modelIds);
}
);
initDigitalTwinCommand(
context,
telemetryWorker,
colorizedChannel,
false,
Command.DownloadModels,
async (publicRepository: boolean, modelIds: string[]): Promise<void> => {
return modelRepositoryManager.downloadModels(publicRepository, modelIds);
}
);
initDigitalTwinCommand(
context,
telemetryWorker,
colorizedChannel,
false,
Command.SearchInterface,
async (
publicRepository: boolean,
keyword?: string,
pageSize?: number,
continuationToken?: string
): Promise<SearchResult> => {
return modelRepositoryManager.searchModel(
ModelType.Interface,
publicRepository,
keyword,
pageSize,
continuationToken
);
}
);
initDigitalTwinCommand(
context,
telemetryWorker,
colorizedChannel,
false,
Command.SearchCapabilityModel,
async (
publicRepository: boolean,
keyword?: string,
pageSize?: number,
continuationToken?: string
): Promise<SearchResult> => {
return modelRepositoryManager.searchModel(
ModelType.CapabilityModel,
publicRepository,
keyword,
pageSize,
continuationToken
);
}
);
}