diff --git a/azure-pipelines-linux-mac.yml b/azure-pipelines-linux-mac.yml index 660c03a92c..1148fe109e 100644 --- a/azure-pipelines-linux-mac.yml +++ b/azure-pipelines-linux-mac.yml @@ -34,5 +34,9 @@ steps: - task: PublishTestResults@2 inputs: - testResultsFiles: '**/test-results.xml' - condition: succeededOrFailed() \ No newline at end of file + testResultsFiles: '**/test-results.xml' + condition: succeededOrFailed() + +- script: | + yarn run tslint + displayName: 'Run TSLint' \ No newline at end of file diff --git a/azure-pipelines-windows.yml b/azure-pipelines-windows.yml index 8462ba09af..4c1f641d8f 100644 --- a/azure-pipelines-windows.yml +++ b/azure-pipelines-windows.yml @@ -23,4 +23,8 @@ steps: - task: PublishTestResults@2 inputs: testResultsFiles: 'test-results.xml' - condition: succeededOrFailed() \ No newline at end of file + condition: succeededOrFailed() + +- script: | + yarn run tslint + displayName: 'Run TSLint' \ No newline at end of file diff --git a/package.json b/package.json index 25880d7ea9..da440b32c8 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "smoketest": "cd test/smoke && node test/index.js", "monaco-compile-check": "tsc -p src/tsconfig.monaco.json --noEmit", "download-builtin-extensions": "node build/lib/builtInExtensions.js", - "check-monaco-editor-compilation": "tsc -p src/tsconfig.monaco.json --noEmit" + "check-monaco-editor-compilation": "tsc -p src/tsconfig.monaco.json --noEmit", + "tslint": "node node_modules/tslint/bin/tslint -c tslint-gci.json -p src/tsconfig.json" }, "dependencies": { "@angular/animations": "~4.1.3", @@ -154,6 +155,7 @@ "source-map": "^0.4.4", "temp-write": "^3.4.0", "tslint": "^5.9.1", + "tslint-microsoft-contrib": "^6.0.0", "typemoq": "^0.3.2", "typescript": "2.9.2", "typescript-formatter": "7.1.0", diff --git a/src/sql/base/browser/ui/table/plugins/copyKeybind.plugin.ts b/src/sql/base/browser/ui/table/plugins/copyKeybind.plugin.ts index 9069e748a2..f65521ad49 100644 --- a/src/sql/base/browser/ui/table/plugins/copyKeybind.plugin.ts +++ b/src/sql/base/browser/ui/table/plugins/copyKeybind.plugin.ts @@ -47,7 +47,7 @@ export class CopyKeybind implements Slick.Plugin { if (!isUndefinedOrNull(this.grid.getColumns()[0].selectable) && !this.grid.getColumns()[0].selectable) { startColumn = 1; } - ranges = [new Slick.Range(selectedRows[0], startColumn, selectedRows[selectedRows.length - 1], this.grid.getColumns().length)] + ranges = [new Slick.Range(selectedRows[0], startColumn, selectedRows[selectedRows.length - 1], this.grid.getColumns().length)]; } this._onCopy.fire(ranges); } diff --git a/src/sql/base/browser/ui/table/plugins/rowDetailView.ts b/src/sql/base/browser/ui/table/plugins/rowDetailView.ts index c18562e4e1..a1c5bfd3c2 100644 --- a/src/sql/base/browser/ui/table/plugins/rowDetailView.ts +++ b/src/sql/base/browser/ui/table/plugins/rowDetailView.ts @@ -349,6 +349,7 @@ export class RowDetailView { //slick-cell to escape the cell overflow clipping. //sneaky extra inserted here-----------------v + /* tslint:disable:no-unexternalized-strings */ html.push("
"); html.push("
"); //shift detail below 1st row html.push("
"); //sub ctr for custom styling html.push("
", escape(dataContext._detailContent), "
"); + /* tslint:enable:no-unexternalized-strings */ //&omit a final closing detail container
that would come next return html.join(''); @@ -364,17 +366,21 @@ export class RowDetailView { } public resizeDetailView(item) { - if (!item) return; + if (!item) { + return; + } // Grad each of the dom items let mainContainer = document.getElementById('detailViewContainer_' + item.id); let cellItem = document.getElementById('cellDetailView_' + item.id); let inner = document.getElementById('innerDetailView_' + item.id); - if (!mainContainer || !cellItem || !inner) return; + if (!mainContainer || !cellItem || !inner) { + return; + } for (let idx = 1; idx <= item._sizePadding; idx++) { - this._dataView.deleteItem(item.id + "." + idx); + this._dataView.deleteItem(item.id + '.' + idx); } let rowHeight = this._grid.getOptions().rowHeight; // height of a row @@ -395,9 +401,9 @@ export class RowDetailView { this._grid.getOptions().minRowBuffer = item._sizePadding + 3; } - mainContainer.setAttribute("style", "max-height: " + item._height + "px"); + mainContainer.setAttribute('style', 'max-height: ' + item._height + 'px'); if (cellItem) { - cellItem.setAttribute("style", "height: " + item._height + "px;top:" + rowHeight + "px"); + cellItem.setAttribute('style', 'height: ' + item._height + 'px;top:' + rowHeight + 'px'); } let idxParent = this._dataView.getIdxById(item.id); diff --git a/src/sql/parts/connection/connectionDialog/connectionWidget.ts b/src/sql/parts/connection/connectionDialog/connectionWidget.ts index a8cd862f0a..8e86a151b3 100644 --- a/src/sql/parts/connection/connectionDialog/connectionWidget.ts +++ b/src/sql/parts/connection/connectionDialog/connectionWidget.ts @@ -17,7 +17,6 @@ import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; import { ConnectionOptionSpecialType } from 'sql/workbench/api/common/sqlExtHostTypes'; import * as Constants from 'sql/parts/connection/common/constants'; import { ConnectionProfileGroup, IConnectionProfileGroup } from 'sql/parts/connection/common/connectionProfileGroup'; -import { attachButtonStyler, attachCheckboxStyler, attachEditableDropdownStyler, attachInputBoxStyler } from 'sql/common/theme/styler'; import { Dropdown } from 'sql/base/browser/ui/editableDropdown/dropdown'; import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService'; @@ -290,14 +289,14 @@ export class ConnectionWidget { private registerListeners(): void { // Theme styler - this._toDispose.push(attachInputBoxStyler(this._serverNameInputBox, this._themeService)); - this._toDispose.push(attachEditableDropdownStyler(this._databaseNameInputBox, this._themeService)); - this._toDispose.push(attachInputBoxStyler(this._connectionNameInputBox, this._themeService)); - this._toDispose.push(attachInputBoxStyler(this._userNameInputBox, this._themeService)); - this._toDispose.push(attachInputBoxStyler(this._passwordInputBox, this._themeService)); + this._toDispose.push(styler.attachInputBoxStyler(this._serverNameInputBox, this._themeService)); + this._toDispose.push(styler.attachEditableDropdownStyler(this._databaseNameInputBox, this._themeService)); + this._toDispose.push(styler.attachInputBoxStyler(this._connectionNameInputBox, this._themeService)); + this._toDispose.push(styler.attachInputBoxStyler(this._userNameInputBox, this._themeService)); + this._toDispose.push(styler.attachInputBoxStyler(this._passwordInputBox, this._themeService)); this._toDispose.push(styler.attachSelectBoxStyler(this._serverGroupSelectBox, this._themeService)); - this._toDispose.push(attachButtonStyler(this._advancedButton, this._themeService)); - this._toDispose.push(attachCheckboxStyler(this._rememberPasswordCheckBox, this._themeService)); + this._toDispose.push(styler.attachButtonStyler(this._advancedButton, this._themeService)); + this._toDispose.push(styler.attachCheckboxStyler(this._rememberPasswordCheckBox, this._themeService)); this._toDispose.push(styler.attachSelectBoxStyler(this._azureAccountDropdown, this._themeService)); if (this._authTypeSelectBox) { diff --git a/src/sql/parts/dashboard/services/breadcrumb.service.ts b/src/sql/parts/dashboard/services/breadcrumb.service.ts index 97de0ddb95..df6e92c1ae 100644 --- a/src/sql/parts/dashboard/services/breadcrumb.service.ts +++ b/src/sql/parts/dashboard/services/breadcrumb.service.ts @@ -17,7 +17,7 @@ import * as nls from 'vs/nls'; export enum BreadcrumbClass { DatabasePage, ServerPage -}; +} @Injectable() export class BreadcrumbService implements IBreadcrumbService { diff --git a/src/sql/parts/disasterRecovery/backup/constants.ts b/src/sql/parts/disasterRecovery/backup/constants.ts index 29710668ca..a55a50ebb8 100644 --- a/src/sql/parts/disasterRecovery/backup/constants.ts +++ b/src/sql/parts/disasterRecovery/backup/constants.ts @@ -22,25 +22,25 @@ export const recoveryModelSimple = 'Simple'; export const recoveryModelFull = 'Full'; // Constants for UI strings -export const labelDatabase = 'Database'; -export const labelFilegroup = 'Files and filegroups'; -export const labelFull = 'Full'; -export const labelDifferential = 'Differential'; -export const labelLog = 'Transaction Log'; -export const labelDisk = 'Disk'; -export const labelUrl = 'Url'; +export const labelDatabase = localize('backup.labelDatabase', 'Database'); +export const labelFilegroup = localize('backup.labelFilegroup', 'Files and filegroups'); +export const labelFull = localize('backup.labelFull', 'Full'); +export const labelDifferential = localize('backup.labelDifferential', 'Differential'); +export const labelLog = localize('backup.labelLog', 'Transaction Log'); +export const labelDisk = localize('backup.labelDisk', 'Disk'); +export const labelUrl = localize('backup.labelUrl', 'Url'); -export const defaultCompression = 'Use the default server setting'; -export const compressionOn = 'Compress backup'; -export const compressionOff = 'Do not compress backup'; +export const defaultCompression = localize('backup.defaultCompression', 'Use the default server setting'); +export const compressionOn = localize('backup.compressBackup', 'Compress backup'); +export const compressionOff = localize('backup.doNotCompress', 'Do not compress backup'); export const aes128 = 'AES 128'; export const aes192 = 'AES 192'; export const aes256 = 'AES 256'; export const tripleDES = 'Triple DES'; -export const serverCertificate = "Server Certificate"; -export const asymmetricKey = "Asymmetric Key"; +export const serverCertificate = localize('backup.serverCertificate', "Server Certificate"); +export const asymmetricKey = localize('backup.asymmetricKey', "Asymmetric Key"); export const fileFiltersSet: {label: string, filters: string[]}[] = [ { label: localize('backup.filterBackupFiles', "Backup Files"), filters: ['*.bak', '*.trn', '*.log'] }, diff --git a/src/sql/parts/fileBrowser/common/fileValidationServiceConstants.ts b/src/sql/parts/fileBrowser/common/fileValidationServiceConstants.ts index 7839dc9bbf..d0c5954742 100644 --- a/src/sql/parts/fileBrowser/common/fileValidationServiceConstants.ts +++ b/src/sql/parts/fileBrowser/common/fileValidationServiceConstants.ts @@ -7,5 +7,5 @@ * List of services that provide file validation callback to file browser service */ -export const backup: string = "Backup"; -export const restore: string = "Restore"; \ No newline at end of file +export const backup: string = 'Backup'; +export const restore: string = 'Restore'; \ No newline at end of file diff --git a/src/sql/parts/jobManagement/views/jobsView.component.ts b/src/sql/parts/jobManagement/views/jobsView.component.ts index c52f3fb442..67079872ec 100644 --- a/src/sql/parts/jobManagement/views/jobsView.component.ts +++ b/src/sql/parts/jobManagement/views/jobsView.component.ts @@ -412,7 +412,7 @@ export class JobsViewComponent extends JobManagementView implements OnInit, OnDe }; sibling.onmouseleave = (e) => { targetChildren.removeClass('hovered'); - } + }; break; } } diff --git a/src/sql/parts/modelComponents/card.component.ts b/src/sql/parts/modelComponents/card.component.ts index 3604ce3014..8d701ef1ce 100644 --- a/src/sql/parts/modelComponents/card.component.ts +++ b/src/sql/parts/modelComponents/card.component.ts @@ -131,7 +131,7 @@ export default class CardComponent extends ComponentWithIconBase implements ICom } public get showRadioButton():boolean{ - return this.selectable && (this.selected || this._hasFocus) + return this.selectable && (this.selected || this._hasFocus); } public get showAsSelected(): boolean { diff --git a/src/sql/parts/notebook/outputs/common/outputProcessor.ts b/src/sql/parts/notebook/outputs/common/outputProcessor.ts index 83eea21820..ef2a9366c2 100644 --- a/src/sql/parts/notebook/outputs/common/outputProcessor.ts +++ b/src/sql/parts/notebook/outputs/common/outputProcessor.ts @@ -4,9 +4,8 @@ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ -import { JSONObject } from './jsonext'; +import { JSONObject, isPrimitive } from './jsonext'; import { MimeModel } from './mimemodel'; -import * as JSONExt from './jsonext'; import { nbformat } from './nbformat'; import { nb } from 'sqlops'; @@ -77,7 +76,7 @@ export function getBundleOptions( */ export function extract(value: JSONObject, key: string): {} { let item = value[key]; - if (JSONExt.isPrimitive(item)) { + if (isPrimitive(item)) { return item; } return JSON.parse(JSON.stringify(item)); diff --git a/src/sql/parts/profiler/contrib/profilerActions.ts b/src/sql/parts/profiler/contrib/profilerActions.ts index 9b35c2e766..955674396c 100644 --- a/src/sql/parts/profiler/contrib/profilerActions.ts +++ b/src/sql/parts/profiler/contrib/profilerActions.ts @@ -19,7 +19,7 @@ import { Action } from 'vs/base/common/actions'; import * as nls from 'vs/nls'; import { IEditorAction } from 'vs/editor/common/editorCommon'; import { IEditorService, ACTIVE_GROUP } from 'vs/workbench/services/editor/common/editorService'; -import { ICommandService } from 'vs/platform/commands/common/commands' +import { ICommandService } from 'vs/platform/commands/common/commands'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { INotificationService } from 'vs/platform/notification/common/notification'; diff --git a/src/sql/parts/profiler/editor/profilerEditor.ts b/src/sql/parts/profiler/editor/profilerEditor.ts index 62e9b00c69..a3a09c0f7d 100644 --- a/src/sql/parts/profiler/editor/profilerEditor.ts +++ b/src/sql/parts/profiler/editor/profilerEditor.ts @@ -530,7 +530,7 @@ export class ProfilerEditor extends BaseEditor { } this._sessionSelector.selectWithOptionName(this.input.sessionName); - }; + } }); } diff --git a/src/sql/parts/profiler/editor/profilerInput.ts b/src/sql/parts/profiler/editor/profilerInput.ts index d0403be541..c3b39da715 100644 --- a/src/sql/parts/profiler/editor/profilerInput.ts +++ b/src/sql/parts/profiler/editor/profilerInput.ts @@ -271,7 +271,7 @@ export class ProfilerInput extends EditorInput implements IProfilerSession { } else { return ConfirmResult.CANCEL; } - });; + }); } else { return TPromise.wrap(ConfirmResult.DONT_SAVE); } diff --git a/src/sql/parts/profiler/service/profilerTestBackend.ts b/src/sql/parts/profiler/service/profilerTestBackend.ts index 51836e8e45..534f5855b6 100644 --- a/src/sql/parts/profiler/service/profilerTestBackend.ts +++ b/src/sql/parts/profiler/service/profilerTestBackend.ts @@ -107,7 +107,7 @@ export class ProfilerTestBackend implements sqlops.ProfilerProvider { this.testData[i / columns.length] = new Array(); } this.testData[Math.floor(i / columns.length)][i % columns.length] = tabsep[i]; - }; + } resolve(true); }); }); diff --git a/src/sql/parts/query/common/flavorStatus.ts b/src/sql/parts/query/common/flavorStatus.ts index 453a1a1cf9..aeb16ba625 100644 --- a/src/sql/parts/query/common/flavorStatus.ts +++ b/src/sql/parts/query/common/flavorStatus.ts @@ -148,7 +148,7 @@ export class SqlFlavorStatusbarItem implements IStatusbarItem { // Show/hide query status for active editor private _showStatus(uri: string): void { - let activeEditor = this._editorService.activeControl + let activeEditor = this._editorService.activeControl; if (activeEditor) { let currentUri = WorkbenchUtils.getEditorUri(activeEditor.input); if (uri === currentUri) { diff --git a/src/sql/parts/query/execution/queryModelService.ts b/src/sql/parts/query/execution/queryModelService.ts index 5765c13375..84f22ac5c4 100644 --- a/src/sql/parts/query/execution/queryModelService.ts +++ b/src/sql/parts/query/execution/queryModelService.ts @@ -394,7 +394,7 @@ export class QueryModelService implements IQueryModelService { queryRunner.onResultSetUpdate(resultSetSummaries => { resultSetSummaries.forEach(resultSet => { this._fireQueryEvent(ownerUri, resultSetEventType, resultSet); - }) + }); }); queryRunner.addListener(QREvents.BATCH_START, batch => { let link = undefined; diff --git a/src/sql/parts/queryPlan/planXmlParser.ts b/src/sql/parts/queryPlan/planXmlParser.ts index 8d367755d9..ae5c76486b 100644 --- a/src/sql/parts/queryPlan/planXmlParser.ts +++ b/src/sql/parts/queryPlan/planXmlParser.ts @@ -143,7 +143,7 @@ export class PlanNode { export class PlanXmlParser { parser: DOMParser = new DOMParser(); doc: Document; - planXml: string + planXml: string; root: PlanNode; constructor(planXml: string) { diff --git a/src/sql/parts/taskHistory/common/taskService.ts b/src/sql/parts/taskHistory/common/taskService.ts index 5fe9b9f5b4..3177c2dd74 100644 --- a/src/sql/parts/taskHistory/common/taskService.ts +++ b/src/sql/parts/taskHistory/common/taskService.ts @@ -175,7 +175,7 @@ export class TaskService implements ITaskService { clearTimeout(timeoutId); if (!isTimeout) { resolve(false); - }; + } }); timeoutId = setTimeout(function () { isTimeout = true; diff --git a/src/sql/parts/tasks/common/tasks.contribution.ts b/src/sql/parts/tasks/common/tasks.contribution.ts index b7e170b4a9..5d13114303 100644 --- a/src/sql/parts/tasks/common/tasks.contribution.ts +++ b/src/sql/parts/tasks/common/tasks.contribution.ts @@ -3,9 +3,7 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { SyncActionDescriptor } from 'vs/platform/actions/common/actions'; -import { EditorDescriptor } from 'vs/workbench/browser/editor'; -import { IEditorRegistry, Extensions as EditorExtensions } from 'vs/workbench/browser/editor'; +import { IEditorRegistry, Extensions as EditorExtensions, EditorDescriptor } from 'vs/workbench/browser/editor'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { Registry } from 'vs/platform/registry/common/platform'; import { TaskDialogEditor } from 'sql/parts/tasks/dialog/taskDialogEditor'; diff --git a/src/sql/platform/telemetry/fileTelemetryService.ts b/src/sql/platform/telemetry/fileTelemetryService.ts index 1957d268b7..4072689ec3 100644 --- a/src/sql/platform/telemetry/fileTelemetryService.ts +++ b/src/sql/platform/telemetry/fileTelemetryService.ts @@ -40,4 +40,4 @@ export class FileTelemetryService implements ITelemetryService { machineId: 'someValue.machineId' }); } -}; \ No newline at end of file +} \ No newline at end of file diff --git a/src/sql/platform/views/fixedCollapsibleView.ts b/src/sql/platform/views/fixedCollapsibleView.ts index 0d2855fc88..6ececec470 100644 --- a/src/sql/platform/views/fixedCollapsibleView.ts +++ b/src/sql/platform/views/fixedCollapsibleView.ts @@ -36,7 +36,7 @@ export abstract class FixedCollapsibleView extends AbstractCollapsibleView { this.setFixed(this.fixedSize); if (this.body) { - if (state == CollapsibleState.COLLAPSED) { + if (state === CollapsibleState.COLLAPSED) { // make sure the body goes out of the tabindex world by hiding it $(this.body).hide(); } else { diff --git a/src/sql/workbench/errorMessageDialog/errorMessageDialog.ts b/src/sql/workbench/errorMessageDialog/errorMessageDialog.ts index 82ca24f3ad..ad6b42ffb0 100644 --- a/src/sql/workbench/errorMessageDialog/errorMessageDialog.ts +++ b/src/sql/workbench/errorMessageDialog/errorMessageDialog.ts @@ -55,7 +55,7 @@ export class ErrorMessageDialog extends Modal { protected renderBody(container: HTMLElement) { new Builder(container).div({ 'class': 'error-dialog' }, (bodyBuilder) => { - this._body = bodyBuilder.getHTMLElement();; + this._body = bodyBuilder.getHTMLElement(); }); } diff --git a/src/sqltest/parts/accountManagement/firewallRuleViewModel.test.ts b/src/sqltest/parts/accountManagement/firewallRuleViewModel.test.ts index 5632663f83..7881dbf4a8 100644 --- a/src/sqltest/parts/accountManagement/firewallRuleViewModel.test.ts +++ b/src/sqltest/parts/accountManagement/firewallRuleViewModel.test.ts @@ -19,7 +19,7 @@ suite('Firewall rule view model tests', () => { viewModel.updateDefaultValues(IPAddress); assert.equal(IPAddress, viewModel.defaultIPAddress); assert.equal('250.222.155.0', viewModel.defaultFromSubnetIPRange); - assert.equal('250.222.155.255', viewModel.defaultToSubnetIPRange);; + assert.equal('250.222.155.255', viewModel.defaultToSubnetIPRange); }); test('update default values to 250.222.155.0 should calculate the correct default subnet IP range', () => { diff --git a/src/sqltest/stubs/capabilitiesTestService.ts b/src/sqltest/stubs/capabilitiesTestService.ts index fb98856284..26af590279 100644 --- a/src/sqltest/stubs/capabilitiesTestService.ts +++ b/src/sqltest/stubs/capabilitiesTestService.ts @@ -113,7 +113,7 @@ export class CapabilitiesTestService implements ICapabilitiesService { } public getLegacyCapabilities(provider: string): sqlops.DataProtocolServerCapabilities { - throw new Error("Method not implemented."); + throw new Error('Method not implemented.'); } public get providers(): { [id: string]: ProviderFeatures } { diff --git a/src/sqltest/stubs/workspaceConfigurationTestService.ts b/src/sqltest/stubs/workspaceConfigurationTestService.ts index d603108d1d..17c06ae96e 100644 --- a/src/sqltest/stubs/workspaceConfigurationTestService.ts +++ b/src/sqltest/stubs/workspaceConfigurationTestService.ts @@ -5,9 +5,7 @@ 'use strict'; import { IWorkspaceConfigurationService } from 'vs/workbench/services/configuration/common/configuration'; -import { IConfigurationData, IConfigurationOverrides, ConfigurationTarget } from 'vs/platform/configuration/common/configuration'; -import { IConfigurationValue } from 'vs/workbench/services/configuration/node/configurationEditingService'; -import { IConfigurationChangeEvent } from 'vs/platform/configuration/common/configuration'; +import { IConfigurationData, IConfigurationOverrides, ConfigurationTarget, IConfigurationChangeEvent } from 'vs/platform/configuration/common/configuration'; import { TPromise } from 'vs/base/common/winjs.base'; import { Event } from 'vs/base/common/event'; @@ -36,11 +34,11 @@ export class WorkspaceConfigurationTestService implements IWorkspaceConfiguratio return TPromise.as(null); } - updateValue(key: string, value: any): TPromise - updateValue(key: string, value: any, overrides: IConfigurationOverrides): TPromise - updateValue(key: string, value: any, target: ConfigurationTarget): TPromise - updateValue(key: string, value: any, overrides: IConfigurationOverrides, target: ConfigurationTarget): TPromise - updateValue(key: string, value: any, overrides: IConfigurationOverrides, target: ConfigurationTarget, donotNotifyError: boolean): TPromise + updateValue(key: string, value: any): TPromise; + updateValue(key: string, value: any, overrides: IConfigurationOverrides): TPromise; + updateValue(key: string, value: any, target: ConfigurationTarget): TPromise; + updateValue(key: string, value: any, overrides: IConfigurationOverrides, target: ConfigurationTarget): TPromise; + updateValue(key: string, value: any, overrides: IConfigurationOverrides, target: ConfigurationTarget, donotNotifyError: boolean): TPromise; updateValue(key: string, value: any, arg3?: any, arg4?: any, donotNotifyError?: any): TPromise { return TPromise.as(null); } diff --git a/tslint-gci.json b/tslint-gci.json new file mode 100644 index 0000000000..760c977232 --- /dev/null +++ b/tslint-gci.json @@ -0,0 +1,26 @@ +{ + "extends": "./tslint.json", + "rules": { + "no-banned-terms": true, + "no-delete-expression": true, + "no-document-domain": true, + "no-disable-auto-sanitization": true, + "no-duplicate-parameter-names": true, + "no-exec-script": true, + "no-function-constructor-with-string-args": true, + "no-octal-literal": true, + "no-reserved-keywords": false, + "variable-name": { + "options": ["ban-keywords"] + }, + "no-string-based-set-immediate": true, + "no-string-based-set-interval": true, + "no-string-based-set-timeout": true, + "no-eval": true + }, + "defaultSeverity": "error", + "rulesDirectory": "./node_modules/tslint-microsoft-contrib/", + "linterOptions": { + "exclude": ["src/vs/**/*.ts"] + } +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 1b492c360e..7574f167fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7066,6 +7066,18 @@ tslib@^1.8.0: version "1.9.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" +tslib@^1.8.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== + +tslint-microsoft-contrib@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/tslint-microsoft-contrib/-/tslint-microsoft-contrib-6.0.0.tgz#7bff73c9ad7a0b7eb5cdb04906de58f42a2bf7a2" + integrity sha512-R//efwn+34IUjTJeYgNDAJdzG0jyLWIehygPt/PHuZAieTolFVS56FgeFW7DOLap9ghXzMiFPTmDgm54qaL7QA== + dependencies: + tsutils "^2.27.2 <2.29.0" + tslint@^5.9.1: version "5.9.1" resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae" @@ -7089,6 +7101,13 @@ tsutils@^2.12.1: dependencies: tslib "^1.7.1" +"tsutils@^2.27.2 <2.29.0": + version "2.28.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.28.0.tgz#6bd71e160828f9d019b6f4e844742228f85169a1" + integrity sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA== + dependencies: + tslib "^1.8.1" + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"