mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-17 17:22:42 -05:00
Kusto extension for ADS (#11752)
* Kusto extension * Add kusto to extensions.ts * Remove objectExplorerNodeProvider * Removed some BDC items + CR cleanup * Cleanup unused strings in package.nls.json * Remove unused svgs, and some cleanup * Bringing objectExplorerNode back and hygiene changes * rename to KustoObjectExplorerNodeProvider * rename to KustoIconProvider * Cleanup SQL code * Fix compilation error * Clean up in objectExplorerNodeProvider folder * Some more clean up based on comments * apiWrapper add * changed to camelCase * Remove unused functions/files * Removed AgentServicesFeature * dacfx, cms, schemacompare clean up * Clean up and addressed few comments * Remove apWrapper from kusto extension * Addressed few comments * credentialstore and escapeexception changes * Added strict check for Kusto extension * Fix error and addressed comment * Saving Kusto files shoulf default to .kql * package.json changes * Fix objectExplorerNodeProvider * Amir/kusto fix (#11972) * Add the compiled extensions.js * Fix strict compile rules Co-authored-by: Monica Gupta <mogupt@microsoft.com> Co-authored-by: Amir Omidi <amomidi@microsoft.com>
This commit is contained in:
@@ -219,7 +219,7 @@ export class ObjectExplorerService implements IObjectExplorerService {
|
||||
}
|
||||
await this.closeSession(connection.providerName, session);
|
||||
delete this._activeObjectExplorerNodes[connectionUri];
|
||||
delete this._sessions[session.sessionId];
|
||||
delete this._sessions[session.sessionId!];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,10 +232,10 @@ export class ObjectExplorerService implements IObjectExplorerService {
|
||||
this.logService.error(expandResponse.errorMessage);
|
||||
}
|
||||
|
||||
let sessionStatus = this._sessions[expandResponse.sessionId];
|
||||
let sessionStatus = this._sessions[expandResponse.sessionId!];
|
||||
let foundSession = false;
|
||||
if (sessionStatus) {
|
||||
let nodeStatus = this._sessions[expandResponse.sessionId].nodes[expandResponse.nodePath];
|
||||
let nodeStatus = this._sessions[expandResponse.sessionId!].nodes[expandResponse.nodePath];
|
||||
foundSession = !!nodeStatus;
|
||||
if (foundSession && nodeStatus.expandEmitter) {
|
||||
nodeStatus.expandEmitter.fire(expandResponse);
|
||||
@@ -261,22 +261,22 @@ export class ObjectExplorerService implements IObjectExplorerService {
|
||||
private async handleSessionCreated(session: azdata.ObjectExplorerSession): Promise<void> {
|
||||
let connection: ConnectionProfile | undefined = undefined;
|
||||
let errorMessage: string | undefined = undefined;
|
||||
if (this._sessions[session.sessionId]) {
|
||||
connection = this._sessions[session.sessionId].connection;
|
||||
if (this._sessions[session.sessionId!]) {
|
||||
connection = this._sessions[session.sessionId!].connection;
|
||||
|
||||
try {
|
||||
if (session.success && session.rootNode) {
|
||||
let server = this.toTreeNode(session.rootNode, undefined);
|
||||
server.connection = connection;
|
||||
server.session = session;
|
||||
this._activeObjectExplorerNodes[connection.id] = server;
|
||||
this._activeObjectExplorerNodes[connection!.id] = server;
|
||||
}
|
||||
else {
|
||||
errorMessage = session && session.errorMessage ? session.errorMessage : errSessionCreateFailed;
|
||||
this.logService.error(errorMessage);
|
||||
}
|
||||
// Send on session created about the session to all node providers so they can prepare for node expansion
|
||||
let nodeProviders = this._nodeProviders[connection.providerName];
|
||||
let nodeProviders = this._nodeProviders[connection!.providerName];
|
||||
if (nodeProviders) {
|
||||
const promises = nodeProviders.map(p => p.handleSessionOpen(session));
|
||||
await Promise.all(promises);
|
||||
@@ -284,7 +284,7 @@ export class ObjectExplorerService implements IObjectExplorerService {
|
||||
} catch (error) {
|
||||
this.logService.warn(`cannot handle the session ${session.sessionId} in all nodeProviders`);
|
||||
} finally {
|
||||
this.sendUpdateNodeEvent(connection, errorMessage);
|
||||
this.sendUpdateNodeEvent(connection!, errorMessage);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -296,8 +296,8 @@ export class ObjectExplorerService implements IObjectExplorerService {
|
||||
* Gets called when session is disconnected
|
||||
*/
|
||||
public onSessionDisconnected(handle: number, session: azdata.ObjectExplorerSession): void {
|
||||
if (this._sessions[session.sessionId]) {
|
||||
let connection: ConnectionProfile = this._sessions[session.sessionId].connection;
|
||||
if (this._sessions[session.sessionId!]) {
|
||||
let connection: ConnectionProfile = this._sessions[session.sessionId!].connection;
|
||||
if (connection && this._connectionManagementService.isProfileConnected(connection)) {
|
||||
let uri: string = Utils.generateUri(connection);
|
||||
if (this._serverTreeView?.isObjectExplorerConnectionUri(uri)) {
|
||||
@@ -383,10 +383,10 @@ export class ObjectExplorerService implements IObjectExplorerService {
|
||||
refresh: boolean = false): Promise<azdata.ObjectExplorerExpandInfo> {
|
||||
let self = this;
|
||||
return new Promise<azdata.ObjectExplorerExpandInfo>((resolve, reject) => {
|
||||
if (session.sessionId in self._sessions && self._sessions[session.sessionId]) {
|
||||
if (session.sessionId! in self._sessions && self._sessions[session.sessionId!]) {
|
||||
let newRequest = false;
|
||||
if (!self._sessions[session.sessionId].nodes[nodePath]) {
|
||||
self._sessions[session.sessionId].nodes[nodePath] = {
|
||||
if (!self._sessions[session.sessionId!].nodes[nodePath]) {
|
||||
self._sessions[session.sessionId!].nodes[nodePath] = {
|
||||
expandEmitter: new Emitter<NodeExpandInfoWithProviderId>()
|
||||
};
|
||||
newRequest = true;
|
||||
@@ -402,7 +402,7 @@ export class ObjectExplorerService implements IObjectExplorerService {
|
||||
allProviders.push(...nodeProviders);
|
||||
}
|
||||
|
||||
self._sessions[session.sessionId].nodes[nodePath].expandEmitter.event((expandResult) => {
|
||||
self._sessions[session.sessionId!].nodes[nodePath].expandEmitter.event((expandResult: NodeExpandInfoWithProviderId) => {
|
||||
if (expandResult && expandResult.providerId) {
|
||||
resultMap.set(expandResult.providerId, expandResult);
|
||||
} else {
|
||||
@@ -415,14 +415,14 @@ export class ObjectExplorerService implements IObjectExplorerService {
|
||||
|
||||
// Have to delete it after get all reponses otherwise couldn't find session for not the first response
|
||||
if (newRequest) {
|
||||
delete self._sessions[session.sessionId].nodes[nodePath];
|
||||
delete self._sessions[session.sessionId!].nodes[nodePath];
|
||||
}
|
||||
}
|
||||
});
|
||||
if (newRequest) {
|
||||
allProviders.forEach(provider => {
|
||||
self.callExpandOrRefreshFromProvider(provider, {
|
||||
sessionId: session.sessionId,
|
||||
sessionId: session.sessionId!,
|
||||
nodePath: nodePath
|
||||
}, refresh).then(isExpanding => {
|
||||
if (!isExpanding) {
|
||||
@@ -506,9 +506,12 @@ export class ObjectExplorerService implements IObjectExplorerService {
|
||||
|
||||
public closeSession(providerId: string, session: azdata.ObjectExplorerSession): Promise<azdata.ObjectExplorerCloseSessionResponse | undefined> {
|
||||
// Complete any requests that are still open for the session
|
||||
let sessionStatus = this._sessions[session.sessionId];
|
||||
let sessionStatus = this._sessions[session.sessionId!];
|
||||
if (sessionStatus && sessionStatus.nodes) {
|
||||
entries(sessionStatus.nodes).forEach(([nodePath, nodeStatus]: [string, NodeStatus]) => {
|
||||
entries(sessionStatus.nodes).forEach((entry) => {
|
||||
const nodePath: string = entry[0];
|
||||
const nodeStatus: NodeStatus = entry[1] as NodeStatus;
|
||||
|
||||
if (nodeStatus.expandEmitter) {
|
||||
nodeStatus.expandEmitter.fire({
|
||||
sessionId: session.sessionId,
|
||||
@@ -606,7 +609,7 @@ export class ObjectExplorerService implements IObjectExplorerService {
|
||||
}
|
||||
|
||||
let node = new TreeNode(nodeInfo.nodeType, nodeInfo.label, isLeaf, nodeInfo.nodePath,
|
||||
nodeInfo.nodeSubType, nodeInfo.nodeStatus, parent, nodeInfo.metadata, nodeInfo.iconType, {
|
||||
nodeInfo.nodeSubType!, nodeInfo.nodeStatus, parent, nodeInfo.metadata, nodeInfo.iconType, {
|
||||
getChildren: (treeNode?: TreeNode) => this.getChildren(treeNode),
|
||||
isExpanded: treeNode => this.isExpanded(treeNode),
|
||||
setNodeExpandedState: async (treeNode, expandedState) => await this.setNodeExpandedState(treeNode, expandedState),
|
||||
|
||||
Reference in New Issue
Block a user