Skip to content

Commit 129d553

Browse files
committed
Update mapepire client
Signed-off-by: worksofliam <[email protected]>
1 parent 4207462 commit 129d553

File tree

6 files changed

+45
-25
lines changed

6 files changed

+45
-25
lines changed

package-lock.json

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1394,7 +1394,7 @@
13941394
"webpack-cli": "^4.5.0"
13951395
},
13961396
"dependencies": {
1397-
"@ibm/mapepire-js": "^0.3.0",
1397+
"@ibm/mapepire-js": "^0.5.0",
13981398
"@octokit/rest": "^21.1.1",
13991399
"chart.js": "^4.4.2",
14001400
"csv": "^6.1.3",

src/connection/sqlJob.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { getInstance } from "../base";
22
import { ServerComponent } from "./serverComponent";
33
import { SelfValue } from "../views/jobManager/selfCodes/nodes";
44
import { SQLJob } from "@ibm/mapepire-js";
5-
import { ConnectionResult, JobStatus, QueryResult, ServerRequest, ServerResponse } from "@ibm/mapepire-js/dist/src/types";
6-
import { JobLogEntry } from "./types";
5+
import { ConnectionResult, QueryResult, ServerRequest, ServerResponse } from "@ibm/mapepire-js/dist/src/types";
6+
import { JobLogEntry, JobStatus } from "./types";
77
import Statement from "../database/statement";
88

99
const DB2I_VERSION = (process.env[`DB2I_VERSION`] || `<version unknown>`) + ((process.env.DEV) ? ``:`-dev`);
@@ -106,7 +106,7 @@ export class OldSQLJob extends SQLJob {
106106
getStatus(): JobStatus {
107107
const currentListenerCount = this.responseEmitter.eventNames().length;
108108

109-
return this.channel && currentListenerCount > 0 ? "busy" : this.status;
109+
return this.channel && currentListenerCount > 0 ? JobStatus.BUSY : this.status;
110110
}
111111

112112
async connect(): Promise<ConnectionResult> {
@@ -116,12 +116,12 @@ export class OldSQLJob extends SQLJob {
116116

117117
this.channel.on(`error`, (err) => {
118118
ServerComponent.writeOutput(err);
119-
this.dispose();
119+
this.end();
120120
})
121121

122122
this.channel.on(`close`, (code: number) => {
123123
ServerComponent.writeOutput(`Exited with code ${code}.`)
124-
this.dispose();
124+
this.end();
125125
})
126126

127127
const props = Object
@@ -147,10 +147,10 @@ export class OldSQLJob extends SQLJob {
147147
const connectResult = await this.send<ConnectionResult>(connectionObject);
148148

149149
if (connectResult.success === true) {
150-
this.status = "ready";
150+
this.status = JobStatus.READY;
151151
} else {
152-
this.dispose();
153-
this.status = "notStarted";
152+
this.end();
153+
this.status = JobStatus.NOT_STARTED;
154154
throw new Error(connectResult.error || `Failed to connect to server.`);
155155
}
156156

@@ -217,13 +217,13 @@ export class OldSQLJob extends SQLJob {
217217
}));
218218
});
219219

220-
this.dispose();
220+
this.end();
221221
}
222222

223-
dispose() {
223+
private end() {
224224
this.channel.close();
225225
this.channel = undefined;
226-
this.status = "ended";
226+
this.status = JobStatus.ENDED;
227227
this.responseEmitter.removeAllListeners();
228228
}
229229
}

src/connection/types.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,23 @@
1-
import { QueryMetaData, QueryResult } from "@ibm/mapepire-js/dist/src/types";
1+
2+
// Redefined from mapepire-js
3+
export enum JobStatus {
4+
NOT_STARTED = "notStarted",
5+
CONNECTING = "connecting",
6+
READY = "ready",
7+
BUSY = "busy",
8+
ENDED = "ended"
9+
}
10+
11+
export enum TransactionEndType {
12+
COMMIT = "COMMIT",
13+
ROLLBACK = "ROLLBACK"
14+
}
15+
16+
export enum ExplainType {
17+
RUN = "run",
18+
DO_NOT_RUN = "doNotRun"
19+
}
20+
// End
221

322
export interface JobLogEntry {
423
MESSAGE_ID: string;

src/views/jobManager/jobManagerView.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { setCancelButtonVisibility } from "../results";
1414
import { JDBCOptions } from "@ibm/mapepire-js/dist/src/types";
1515
import { registerDb2iTablesProvider } from "../../aiProviders/continue/listTablesContextProvider";
1616
import { sqlLanguageStatus } from "../../language/providers";
17+
import { TransactionEndType } from "../../connection/types";
1718

1819
const selectJobCommand = `vscode-db2i.jobManager.selectJob`;
1920
const activeColor = new vscode.ThemeColor(`minimapGutter.addedBackground`);
@@ -71,10 +72,10 @@ export class JobManagerView implements TreeDataProvider<any> {
7172

7273
switch (decision) {
7374
case `Commit and end`:
74-
await selected.job.endTransaction("commit");
75+
await selected.job.endTransaction(TransactionEndType.COMMIT);
7576
break;
7677
case `Rollback and end`:
77-
await selected.job.endTransaction("rollback");
78+
await selected.job.endTransaction(TransactionEndType.ROLLBACK);
7879
break;
7980
default:
8081
// Actually... don't end the job
@@ -245,7 +246,7 @@ export class JobManagerView implements TreeDataProvider<any> {
245246
let selected = id ? JobManager.getJob(id) : JobManager.getSelection();
246247
if (selected) {
247248
if (selected.job.underCommitControl()) {
248-
const result = await selected.job.endTransaction("commit");
249+
const result = await selected.job.endTransaction(TransactionEndType.ROLLBACK);
249250
if (!result.success) {
250251
vscode.window.showErrorMessage(`Failed to commit.` + result.error);
251252
}
@@ -261,7 +262,7 @@ export class JobManagerView implements TreeDataProvider<any> {
261262
if (selected) {
262263
if (selected.job.underCommitControl()) {
263264
try {
264-
const result = await selected.job.endTransaction("rollback");
265+
const result = await selected.job.endTransaction(TransactionEndType.ROLLBACK);
265266
if (!result.success) {
266267
vscode.window.showErrorMessage(`Failed to rollback. ` + result.error);
267268
}

src/views/results/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import { DoveTreeDecorationProvider } from "./explain/doveTreeDecorationProvider
1515
import { ResultSetPanelProvider } from "./resultSetPanelProvider";
1616
import { generateSqlForAdvisedIndexes } from "./explain/advice";
1717
import { updateStatusBar } from "../jobManager/statusBar";
18-
import { ExplainType } from "@ibm/mapepire-js/dist/src/types";
1918
import { DbCache } from "../../language/providers/logic/cache";
19+
import { ExplainType } from "../../connection/types";
2020

2121
export type StatementQualifier = "statement" | "update" | "explain" | "onlyexplain" | "json" | "csv" | "cl" | "sql";
2222

@@ -355,7 +355,7 @@ async function runHandler(options?: StatementInfo) {
355355
const onlyExplain = statementDetail.qualifier === `onlyexplain`;
356356

357357
chosenView.setLoadingText(onlyExplain ? `Explaining without running...` : `Explaining...`);
358-
const explainType: ExplainType = onlyExplain ? "doNotRun" : "run";
358+
const explainType: ExplainType = onlyExplain ? ExplainType.DO_NOT_RUN : ExplainType.RUN;
359359

360360
setCancelButtonVisibility(true);
361361
const explained = await selectedJob.job.explain(statementDetail.content, explainType); // Can throw

0 commit comments

Comments
 (0)