Add more to strict nulls (#11871)

* add more to strict nulls

* maintain error handling properly

* fix lint
This commit is contained in:
Anthony Dresser
2020-08-19 18:38:34 -07:00
committed by GitHub
parent 69a96a7d5d
commit 9327624930
22 changed files with 393 additions and 369 deletions

View File

@@ -138,7 +138,9 @@ export default class QueryRunner extends Disposable {
*/
public runQuery(input: IRange | undefined, runOptions?: ExecutionPlanOptions): Promise<void>;
public runQuery(input: string | IRange | undefined, runOptions?: ExecutionPlanOptions): Promise<void> {
if (types.isString(input) || types.isUndefined(input)) {
if (types.isString(input)) {
return this.doRunQuery(input, false, runOptions);
} else if (types.isUndefined(input)) {
return this.doRunQuery(input, false, runOptions);
} else {
return this.doRunQuery(input, false, runOptions);
@@ -157,8 +159,9 @@ export default class QueryRunner extends Disposable {
* Implementation that runs the query with the provided query
* @param input Query string to execute
*/
private doRunQuery(input: string, runCurrentStatement: boolean, runOptions?: ExecutionPlanOptions): Promise<void>;
private doRunQuery(input: IRange | undefined, runCurrentStatement: boolean, runOptions?: ExecutionPlanOptions): Promise<void>;
private doRunQuery(input: string, runCurrentStatement: false, runOptions?: ExecutionPlanOptions): Promise<void>;
private doRunQuery(input: IRange | undefined, runCurrentStatement: false, runOptions?: ExecutionPlanOptions): Promise<void>;
private doRunQuery(input: IRange, runCurrentStatement: true, runOptions?: ExecutionPlanOptions): Promise<void>;
private doRunQuery(input: string | IRange | undefined, runCurrentStatement: boolean, runOptions?: ExecutionPlanOptions): Promise<void> {
if (this.isExecuting) {
return Promise.resolve();
@@ -181,7 +184,7 @@ export default class QueryRunner extends Disposable {
// Send the request to execute the query
return runCurrentStatement
? this.queryManagementService.runQueryStatement(this.uri, input.startLineNumber, input.startColumn).then(() => this.handleSuccessRunQueryResult(), e => this.handleFailureRunQueryResult(e))
? this.queryManagementService.runQueryStatement(this.uri, input!.startLineNumber, input!.startColumn).then(() => this.handleSuccessRunQueryResult(), e => this.handleFailureRunQueryResult(e))
: this.queryManagementService.runQuery(this.uri, input, runOptions).then(() => this.handleSuccessRunQueryResult(), e => this.handleFailureRunQueryResult(e));
} else {
// Update internal state to show that we're executing the query
@@ -232,7 +235,9 @@ export default class QueryRunner extends Disposable {
this._batchSets.map(batch => {
if (batch.range) {
batch.range = new Range(batch.range.startLineNumber + this._resultLineOffset, batch.range.startColumn + this._resultColumnOffset, batch.range.endLineNumber + this._resultLineOffset, batch.range.endColumn + this._resultColumnOffset);
const columnOffset = (this._resultColumnOffset ?? 0);
const lineOffest = (this._resultLineOffset ?? 0);
batch.range = new Range(batch.range.startLineNumber + lineOffest, batch.range.startColumn + columnOffset, batch.range.endLineNumber + lineOffest, batch.range.endColumn + columnOffset);
}
});
@@ -256,7 +261,9 @@ export default class QueryRunner extends Disposable {
public handleBatchStart(batch: BatchStartSummary): void {
// Recalculate the start and end lines, relative to the result line offset
if (batch.range) {
batch.range = new Range(batch.range.startLineNumber + this._resultLineOffset, batch.range.startColumn + this._resultColumnOffset, batch.range.endLineNumber + this._resultLineOffset, batch.range.endColumn + this._resultColumnOffset);
const columnOffset = (this._resultColumnOffset ?? 0);
const lineOffest = (this._resultLineOffset ?? 0);
batch.range = new Range(batch.range.startLineNumber + lineOffest, batch.range.startColumn + columnOffset, batch.range.endLineNumber + lineOffest, batch.range.endColumn + columnOffset);
}
// Store the batch
@@ -305,6 +312,7 @@ export default class QueryRunner extends Disposable {
batchSet = <BatchSummary>{
id: 0,
range: undefined,
executionStart: Date.now().toString(),
hasError: false,
resultSetSummaries: []
};