mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-18 01:25:37 -05:00
add strict nulls for contrib/extensions (#11916)
This commit is contained in:
@@ -14,11 +14,11 @@ import { ObjectMetadata } from 'azdata';
|
||||
import { Action } from 'vs/base/common/actions';
|
||||
import * as nls from 'vs/nls';
|
||||
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { IInsightsConfig } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { IAccountManagementService } from 'sql/platform/accounts/common/interfaces';
|
||||
import { ILogService } from 'vs/platform/log/common/log';
|
||||
import { IInsightsConfig } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
export interface BaseActionContext {
|
||||
object?: ObjectMetadata;
|
||||
|
||||
@@ -12,7 +12,6 @@ import { Action } from 'vs/base/common/actions';
|
||||
import { INotificationService, Severity } from 'vs/platform/notification/common/notification';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
||||
import { IInsightsConfig } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { IInsightOptions } from 'sql/workbench/contrib/charts/common/interfaces';
|
||||
import { QueryEditorInput } from 'sql/workbench/common/editor/query/queryEditorInput';
|
||||
import { IFileService } from 'vs/platform/files/common/files';
|
||||
@@ -25,6 +24,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
|
||||
import { UntitledTextEditorInput } from 'vs/workbench/services/untitled/common/untitledTextEditorInput';
|
||||
import { ChartView } from 'sql/workbench/contrib/charts/browser/chartView';
|
||||
import { ConfigureChartDialog } from 'sql/workbench/contrib/charts/browser/configureChartDialog';
|
||||
import { IInsightsConfig } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
export interface IChartActionContext {
|
||||
options: IInsightOptions;
|
||||
|
||||
@@ -15,22 +15,9 @@ import { NAV_SECTION, validateNavSectionContributionAndRegisterIcon } from 'sql/
|
||||
import { WIDGETS_CONTAINER, validateWidgetContainerContribution } from 'sql/workbench/contrib/dashboard/browser/containers/dashboardWidgetContainer.contribution';
|
||||
import { GRID_CONTAINER, validateGridContainerContribution } from 'sql/workbench/contrib/dashboard/browser/containers/dashboardGridContainer.contribution';
|
||||
import { values } from 'vs/base/common/collections';
|
||||
import { IUserFriendlyIcon } from 'sql/workbench/contrib/dashboard/browser/core/dashboardWidget';
|
||||
import { isValidIcon, createCSSRuleForIcon } from 'sql/workbench/contrib/dashboard/browser/dashboardIconUtil';
|
||||
import { IDashboardTabGroup, IDashboardTab } from 'sql/workbench/services/dashboard/browser/common/interfaces';
|
||||
|
||||
export interface IDashboardTabContrib {
|
||||
id: string;
|
||||
title: string;
|
||||
container: { [key: string]: any };
|
||||
provider: string | string[];
|
||||
when?: string;
|
||||
description?: string;
|
||||
alwaysShow?: boolean;
|
||||
isHomeTab?: boolean;
|
||||
group?: string;
|
||||
icon?: IUserFriendlyIcon;
|
||||
}
|
||||
import { IDashboardTabContrib } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
export interface IDashboardTabGroupContrib {
|
||||
id: string;
|
||||
|
||||
@@ -9,6 +9,7 @@ import { Action } from 'vs/base/common/actions';
|
||||
import { Disposable } from 'vs/base/common/lifecycle';
|
||||
import { TabType } from 'sql/base/browser/ui/panel/tab.component';
|
||||
import { IDashboardTab } from 'sql/workbench/services/dashboard/browser/common/interfaces';
|
||||
import { IUserFriendlyIcon } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
export interface IDashboardWidget {
|
||||
actions: Array<Action>;
|
||||
@@ -47,7 +48,6 @@ export interface TabConfig extends IDashboardTab {
|
||||
}
|
||||
|
||||
|
||||
export type IUserFriendlyIcon = string | { light: string; dark: string; };
|
||||
|
||||
export interface NavSectionConfig {
|
||||
id: string;
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { IUserFriendlyIcon } from 'sql/workbench/contrib/dashboard/browser/core/dashboardWidget';
|
||||
import { asCSSUrl, createCSSRule } from 'vs/base/browser/dom';
|
||||
import { IdGenerator } from 'vs/base/common/idGenerator';
|
||||
import * as resources from 'vs/base/common/resources';
|
||||
import * as nls from 'vs/nls';
|
||||
import { IExtensionPointUser } from 'vs/workbench/services/extensions/common/extensionsRegistry';
|
||||
import { IUserFriendlyIcon } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
const ids = new IdGenerator('contrib-dashboard-icon-');
|
||||
export function createCSSRuleForIcon(icon: IUserFriendlyIcon, extension: IExtensionPointUser<any>): string {
|
||||
|
||||
@@ -15,7 +15,7 @@ import { DashboardWidget, IDashboardWidget, WIDGET_CONFIG, WidgetConfig } from '
|
||||
import { CommonServiceInterface } from 'sql/workbench/services/bootstrap/browser/commonServiceInterface.service';
|
||||
import { ComponentHostDirective } from 'sql/base/browser/componentHost.directive';
|
||||
import { InsightAction, InsightActionContext } from 'sql/workbench/browser/actions';
|
||||
import { Extensions, IInsightRegistry, IInsightsConfig, IInsightsView, getWidgetAutoRefreshState } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { Extensions, IInsightRegistry, IInsightsView, getWidgetAutoRefreshState } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { resolveQueryFilePath } from 'sql/workbench/services/insights/common/insightsUtils';
|
||||
|
||||
import { RunInsightQueryAction } from './actions';
|
||||
@@ -35,6 +35,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
|
||||
import { IFileService } from 'vs/platform/files/common/files';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { subscriptionToDisposable } from 'sql/base/browser/lifecycle';
|
||||
import { IInsightsConfig } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
const insightRegistry = Registry.as<IInsightRegistry>(Extensions.InsightContribution);
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@ import { join } from 'vs/base/common/path';
|
||||
|
||||
import { registerDashboardWidget, registerNonCustomDashboardWidget } from 'sql/platform/dashboard/browser/widgetRegistry';
|
||||
import { Extensions as InsightExtensions, IInsightRegistry, setWidgetAutoRefreshState } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { IInsightTypeContrib } from './interfaces';
|
||||
import { insightsContribution, insightsSchema } from 'sql/workbench/contrib/dashboard/browser/widgets/insights/insightsWidgetSchemas';
|
||||
|
||||
import { IExtensionPointUser, ExtensionsRegistry } from 'vs/workbench/services/extensions/common/extensionsRegistry';
|
||||
import { Registry } from 'vs/platform/registry/common/platform';
|
||||
import { CommandsRegistry } from 'vs/platform/commands/common/commands';
|
||||
import { ServicesAccessor } from 'vs/editor/browser/editorExtensions';
|
||||
import { IInsightTypeContrib } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
const insightRegistry = Registry.as<IInsightRegistry>(InsightExtensions.InsightContribution);
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { IInsightsConfig } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
|
||||
export interface IInsightTypeContrib {
|
||||
id: string;
|
||||
contrib: IInsightsConfig;
|
||||
}
|
||||
@@ -4,10 +4,9 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { append, $ } from 'vs/base/browser/dom';
|
||||
import { IInsightTypeContrib } from 'sql/workbench/contrib/dashboard/browser/widgets/insights/interfaces';
|
||||
import { IDashboardTabContrib } from 'sql/workbench/contrib/dashboard/browser/core/dashboardTab.contribution';
|
||||
import { localize } from 'vs/nls';
|
||||
import { IExtensionManifest } from 'vs/platform/extensions/common/extensions';
|
||||
import { IDashboardTabContrib, IExtensionContributions, IInsightTypeContrib } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
class ContributionReader {
|
||||
constructor(private manifest: IExtensionManifest) { }
|
||||
@@ -15,7 +14,7 @@ class ContributionReader {
|
||||
public dashboardInsights(): IInsightTypeContrib[] {
|
||||
let contributes = this.manifest.contributes;
|
||||
if (contributes) {
|
||||
let insights: IInsightTypeContrib | IInsightTypeContrib[] = contributes['dashboard.insights'];
|
||||
let insights = (contributes as IExtensionContributions)['dashboard.insights'];
|
||||
if (insights) {
|
||||
if (!Array.isArray(insights)) {
|
||||
return [insights];
|
||||
@@ -23,13 +22,13 @@ class ContributionReader {
|
||||
return insights;
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
return [];
|
||||
}
|
||||
|
||||
public dashboardTabs(): IDashboardTabContrib[] {
|
||||
let contributes = this.manifest.contributes;
|
||||
if (contributes) {
|
||||
let tabs: IDashboardTabContrib | IDashboardTabContrib[] = contributes['dashboard.tabs'];
|
||||
let tabs = (contributes as IExtensionContributions)['dashboard.tabs'];
|
||||
if (tabs) {
|
||||
if (!Array.isArray(tabs)) {
|
||||
return [tabs];
|
||||
@@ -37,7 +36,7 @@ class ContributionReader {
|
||||
return tabs;
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,17 +55,17 @@ function renderDashboardTabs(onDetailsToggle: Function, contributionReader: Cont
|
||||
}
|
||||
|
||||
const details = $('details', { open: true, ontoggle: onDetailsToggle },
|
||||
$('summary', null, localize('tabs', "Dashboard Tabs ({0})", tabs.length)),
|
||||
$('table', null,
|
||||
$('tr', null,
|
||||
$('th', null, localize('tabId', "Id")),
|
||||
$('th', null, localize('tabTitle', "Title")),
|
||||
$('th', null, localize('tabDescription', "Description"))
|
||||
$('summary', undefined, localize('tabs', "Dashboard Tabs ({0})", tabs.length)),
|
||||
$('table', undefined,
|
||||
$('tr', undefined,
|
||||
$('th', undefined, localize('tabId', "Id")),
|
||||
$('th', undefined, localize('tabTitle', "Title")),
|
||||
$('th', undefined, localize('tabDescription', "Description"))
|
||||
),
|
||||
...tabs.map(tab => $('tr', null,
|
||||
$('td', null, $('code', null, tab.id)),
|
||||
$('td', null, tab.title ? tab.title : tab.id),
|
||||
$('td', null, tab.description),
|
||||
...tabs.map(tab => $('tr', undefined,
|
||||
$('td', undefined, $('code', undefined, tab.id)),
|
||||
$('td', undefined, tab.title ? tab.title : tab.id),
|
||||
$('td', undefined, tab.description ?? ''),
|
||||
))
|
||||
)
|
||||
);
|
||||
@@ -83,17 +82,17 @@ function renderDashboardInsights(onDetailsToggle: Function, contributionReader:
|
||||
}
|
||||
|
||||
const details = $('details', { open: true, ontoggle: onDetailsToggle },
|
||||
$('summary', null, localize('insights', "Dashboard Insights ({0})", insights.length)),
|
||||
$('table', null,
|
||||
$('tr', null,
|
||||
$('th', null, localize('insightId', "Id")),
|
||||
$('th', null, localize('name', "Name")),
|
||||
$('th', null, localize('insight condition', "When"))
|
||||
$('summary', undefined, localize('insights', "Dashboard Insights ({0})", insights.length)),
|
||||
$('table', undefined,
|
||||
$('tr', undefined,
|
||||
$('th', undefined, localize('insightId', "Id")),
|
||||
$('th', undefined, localize('name', "Name")),
|
||||
$('th', undefined, localize('insight condition', "When"))
|
||||
),
|
||||
...insights.map(insight => $('tr', null,
|
||||
$('td', null, $('code', null, insight.id)),
|
||||
$('td', null, insight.contrib.name ? insight.contrib.name : insight.id),
|
||||
$('td', null, insight.contrib.when),
|
||||
...insights.map(insight => $('tr', undefined,
|
||||
$('td', undefined, $('code', undefined, insight.id)),
|
||||
$('td', undefined, insight.contrib.name ? insight.contrib.name : insight.id),
|
||||
$('td', undefined, insight.contrib.when ?? ''),
|
||||
))
|
||||
)
|
||||
);
|
||||
|
||||
@@ -20,7 +20,7 @@ import { ILogService } from 'vs/platform/log/common/log';
|
||||
import { IFileService } from 'vs/platform/files/common/files';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { IInsightsDialogModel } from 'sql/workbench/services/insights/browser/insightsDialogService';
|
||||
import { IInsightsConfigDetails } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { IInsightsConfigDetails } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
export class InsightsDialogController {
|
||||
private _queryRunner: QueryRunner;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
import { IInsightsDialogModel, ListResource } from 'sql/workbench/services/insights/browser/insightsDialogService';
|
||||
|
||||
import { Event, Emitter } from 'vs/base/common/event';
|
||||
import { IInsightsConfigDetails, IInsightsLabel } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { IInsightsConfigDetails, IInsightsLabel } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
export enum Conditional {
|
||||
'equals',
|
||||
|
||||
@@ -7,7 +7,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'
|
||||
|
||||
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
|
||||
import { BaseActionContext } from 'sql/workbench/browser/actions';
|
||||
import { IInsightsConfigDetails, IInsightsConfig } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { IInsightsConfigDetails, IInsightsConfig } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
export interface IInsightsDialogModel {
|
||||
rows: string[][];
|
||||
|
||||
@@ -8,8 +8,8 @@ import { InsightsDialogView } from 'sql/workbench/services/insights/browser/insi
|
||||
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
|
||||
import { IInsightsDialogModel, IInsightsDialogService } from 'sql/workbench/services/insights/browser/insightsDialogService';
|
||||
import { InsightsDialogModel } from 'sql/workbench/services/insights/browser/insightsDialogModel';
|
||||
import { IInsightsConfig } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { InsightsDialogController } from 'sql/workbench/services/insights/browser/insightsDialogController';
|
||||
import { IInsightsConfig } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
export class InsightsDialogService implements IInsightsDialogService {
|
||||
_serviceBrand: undefined;
|
||||
|
||||
@@ -36,7 +36,6 @@ import { SplitView, Orientation, Sizing } from 'vs/base/browser/ui/splitview/spl
|
||||
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { ILogService } from 'vs/platform/log/common/log';
|
||||
import { IInsightsConfigDetails } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { TaskRegistry } from 'sql/workbench/services/tasks/browser/tasksRegistry';
|
||||
import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfigurationService';
|
||||
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
||||
@@ -49,6 +48,7 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { ILayoutService } from 'vs/platform/layout/browser/layoutService';
|
||||
import { Registry } from 'vs/platform/registry/common/platform';
|
||||
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
|
||||
import { IInsightsConfigDetails } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
const labelDisplay = nls.localize("insights.item", "Item");
|
||||
const valueDisplay = nls.localize("insights.value", "Value");
|
||||
|
||||
@@ -15,11 +15,11 @@ import { equal } from 'assert';
|
||||
import { Mock, MockBehavior, It } from 'typemoq';
|
||||
import { Emitter } from 'vs/base/common/event';
|
||||
import { InsightsDialogModel } from 'sql/workbench/services/insights/browser/insightsDialogModel';
|
||||
import { IInsightsConfigDetails } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { TestCapabilitiesService } from 'sql/platform/capabilities/test/common/testCapabilitiesService';
|
||||
import { IStorageService } from 'vs/platform/storage/common/storage';
|
||||
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock';
|
||||
import { TestStorageService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
import { IInsightsConfigDetails } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
const testData: string[][] = [
|
||||
['1', '2', '3', '4'],
|
||||
|
||||
@@ -7,7 +7,7 @@ import { InsightsDialogModel } from 'sql/workbench/services/insights/browser/ins
|
||||
import { isUndefinedOrNull } from 'vs/base/common/types';
|
||||
|
||||
import * as assert from 'assert';
|
||||
import { IInsightsLabel, IInsightsConfigDetails } from 'sql/platform/dashboard/browser/insightRegistry';
|
||||
import { IInsightsLabel, IInsightsConfigDetails } from 'sql/platform/extensions/common/extensions';
|
||||
|
||||
suite('Insights Dialog Model Tests', () => {
|
||||
test('does parse condition right', () => {
|
||||
|
||||
Reference in New Issue
Block a user