Cache BQRS schemas in compare view
This commit is contained in:
@@ -30,7 +30,9 @@ import { findResultSetNames } from "./result-set-names";
|
|||||||
|
|
||||||
interface ComparePair {
|
interface ComparePair {
|
||||||
from: CompletedLocalQueryInfo;
|
from: CompletedLocalQueryInfo;
|
||||||
|
fromSchemas: BQRSInfo;
|
||||||
to: CompletedLocalQueryInfo;
|
to: CompletedLocalQueryInfo;
|
||||||
|
toSchemas: BQRSInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class CompareView extends AbstractWebview<
|
export class CompareView extends AbstractWebview<
|
||||||
@@ -57,7 +59,19 @@ export class CompareView extends AbstractWebview<
|
|||||||
to: CompletedLocalQueryInfo,
|
to: CompletedLocalQueryInfo,
|
||||||
selectedResultSetName?: string,
|
selectedResultSetName?: string,
|
||||||
) {
|
) {
|
||||||
this.comparePair = { from, to };
|
const fromSchemas = await this.cliServer.bqrsInfo(
|
||||||
|
from.completedQuery.query.resultsPaths.resultsPath,
|
||||||
|
);
|
||||||
|
const toSchemas = await this.cliServer.bqrsInfo(
|
||||||
|
to.completedQuery.query.resultsPaths.resultsPath,
|
||||||
|
);
|
||||||
|
|
||||||
|
this.comparePair = {
|
||||||
|
from,
|
||||||
|
fromSchemas,
|
||||||
|
to,
|
||||||
|
toSchemas,
|
||||||
|
};
|
||||||
|
|
||||||
await this.showResultsInternal(selectedResultSetName);
|
await this.showResultsInternal(selectedResultSetName);
|
||||||
}
|
}
|
||||||
@@ -78,7 +92,10 @@ export class CompareView extends AbstractWebview<
|
|||||||
currentResultSetName,
|
currentResultSetName,
|
||||||
fromResultSet,
|
fromResultSet,
|
||||||
toResultSet,
|
toResultSet,
|
||||||
] = await this.findCommonResultSetNames(from, to, selectedResultSetName);
|
] = await this.findCommonResultSetNames(
|
||||||
|
this.comparePair,
|
||||||
|
selectedResultSetName,
|
||||||
|
);
|
||||||
if (currentResultSetName) {
|
if (currentResultSetName) {
|
||||||
let rows: QueryCompareResult | undefined;
|
let rows: QueryCompareResult | undefined;
|
||||||
let message: string | undefined;
|
let message: string | undefined;
|
||||||
@@ -178,23 +195,15 @@ export class CompareView extends AbstractWebview<
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async findCommonResultSetNames(
|
private async findCommonResultSetNames(
|
||||||
from: CompletedLocalQueryInfo,
|
{ from, fromSchemas, to, toSchemas }: ComparePair,
|
||||||
to: CompletedLocalQueryInfo,
|
|
||||||
selectedResultSetName: string | undefined,
|
selectedResultSetName: string | undefined,
|
||||||
): Promise<[string[], string, RawResultSet, RawResultSet]> {
|
): Promise<[string[], string, RawResultSet, RawResultSet]> {
|
||||||
const {
|
const {
|
||||||
commonResultSetNames,
|
commonResultSetNames,
|
||||||
currentResultSetDisplayName,
|
currentResultSetDisplayName,
|
||||||
fromSchemas,
|
|
||||||
fromResultSetName,
|
fromResultSetName,
|
||||||
toSchemas,
|
|
||||||
toResultSetName,
|
toResultSetName,
|
||||||
} = await findResultSetNames(
|
} = await findResultSetNames(fromSchemas, toSchemas, selectedResultSetName);
|
||||||
this.cliServer,
|
|
||||||
from,
|
|
||||||
to,
|
|
||||||
selectedResultSetName,
|
|
||||||
);
|
|
||||||
|
|
||||||
const fromResultSet = await this.getResultSet(
|
const fromResultSet = await this.getResultSet(
|
||||||
fromSchemas,
|
fromSchemas,
|
||||||
|
|||||||
@@ -1,18 +1,10 @@
|
|||||||
import { CompletedLocalQueryInfo } from "../query-results";
|
import { BQRSInfo } from "../common/bqrs-cli-types";
|
||||||
import { CodeQLCliServer } from "../codeql-cli/cli";
|
|
||||||
|
|
||||||
export async function findResultSetNames(
|
export async function findResultSetNames(
|
||||||
cliServer: CodeQLCliServer,
|
fromSchemas: BQRSInfo,
|
||||||
from: CompletedLocalQueryInfo,
|
toSchemas: BQRSInfo,
|
||||||
to: CompletedLocalQueryInfo,
|
|
||||||
selectedResultSetName: string | undefined,
|
selectedResultSetName: string | undefined,
|
||||||
) {
|
) {
|
||||||
const fromSchemas = await cliServer.bqrsInfo(
|
|
||||||
from.completedQuery.query.resultsPaths.resultsPath,
|
|
||||||
);
|
|
||||||
const toSchemas = await cliServer.bqrsInfo(
|
|
||||||
to.completedQuery.query.resultsPaths.resultsPath,
|
|
||||||
);
|
|
||||||
const fromSchemaNames = fromSchemas["result-sets"].map(
|
const fromSchemaNames = fromSchemas["result-sets"].map(
|
||||||
(schema) => schema.name,
|
(schema) => schema.name,
|
||||||
);
|
);
|
||||||
@@ -47,9 +39,7 @@ export async function findResultSetNames(
|
|||||||
currentResultSetDisplayName:
|
currentResultSetDisplayName:
|
||||||
currentResultSetName ||
|
currentResultSetName ||
|
||||||
`${defaultFromResultSetName} <-> ${defaultToResultSetName}`,
|
`${defaultFromResultSetName} <-> ${defaultToResultSetName}`,
|
||||||
fromSchemas,
|
|
||||||
fromResultSetName,
|
fromResultSetName,
|
||||||
toSchemas,
|
|
||||||
toResultSetName,
|
toResultSetName,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user