add strict nulls for contrib/extensions (#11916)

This commit is contained in:
Anthony Dresser
2020-08-21 17:17:59 -07:00
committed by GitHub
parent f4f4271115
commit 9d680be37a
20 changed files with 125 additions and 112 deletions

View File

@@ -7,6 +7,7 @@ import * as platform from 'vs/platform/registry/common/platform';
import { IJSONSchema } from 'vs/base/common/jsonSchema';
import * as nls from 'vs/nls';
import { values } from 'vs/base/common/collections';
import { IInsightsConfig } from 'sql/platform/extensions/common/extensions';
export type InsightIdentifier = string;
@@ -14,52 +15,6 @@ export const Extensions = {
InsightContribution: 'dashboard.contributions.insights'
};
export interface IInsightsConfig {
cacheId?: string;
type: any;
name?: string;
when?: string;
gridItemConfig?: ISize;
query?: string | Array<string>;
queryFile?: string;
details?: IInsightsConfigDetails;
autoRefreshInterval?: number;
id?: string;
}
export interface IInsightsLabel {
column: string;
icon?: string;
state?: Array<IStateCondition>;
}
export interface IStateCondition {
condition: {
if: string,
equals?: string
};
color?: string;
icon?: string;
}
export interface IInsightsConfigDetails {
query?: string | Array<string>;
queryFile?: string;
label?: string | IInsightsLabel;
value?: string;
actions?: {
types: Array<string>;
database?: string;
server?: string;
user?: string;
};
}
export interface ISize {
x: number;
y: number;
}
export interface IInsightData {
columns: Array<string>;
rows: Array<Array<string>>;

View File

@@ -6,7 +6,7 @@
import * as platform from 'vs/platform/registry/common/platform';
import { IJSONSchema, IJSONSchemaMap } from 'vs/base/common/jsonSchema';
import * as nls from 'vs/nls';
import { IInsightsConfig } from 'sql/platform/dashboard/browser/insightRegistry';
import { IInsightsConfig } from 'sql/platform/extensions/common/extensions';
export type WidgetIdentifier = string;

View File

@@ -0,0 +1,83 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IExtensionContributions as vsIExtensionContributions } from 'vs/platform/extensions/common/extensions';
export interface ISize {
x: number;
y: number;
}
export interface IInsightsConfigDetails {
query?: string | Array<string>;
queryFile?: string;
label?: string | IInsightsLabel;
value?: string;
actions?: {
types: Array<string>;
database?: string;
server?: string;
user?: string;
};
}
export interface IInsightsLabel {
column: string;
icon?: string;
state?: Array<IStateCondition>;
}
export interface IStateCondition {
condition: {
if: string,
equals?: string
};
color?: string;
icon?: string;
}
export interface IInsightsConfig {
cacheId?: string;
type: any;
name?: string;
when?: string;
gridItemConfig?: ISize;
query?: string | Array<string>;
queryFile?: string;
details?: IInsightsConfigDetails;
autoRefreshInterval?: number;
id?: string;
}
export interface IInsightTypeContrib {
id: string;
contrib: IInsightsConfig;
}
export type IUserFriendlyIcon = string | { light: string; dark: string; };
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;
}
export interface IInsightTypeContrib {
id: string;
contrib: IInsightsConfig;
}
export interface IExtensionContributions extends vsIExtensionContributions {
readonly 'dashboard.insights'?: IInsightTypeContrib | IInsightTypeContrib[];
readonly 'dashboard.tabs'?: IDashboardTabContrib | IDashboardTabContrib[]
}