Remove import cycle for distribution manager
This commit is contained in:
@@ -11,10 +11,10 @@ import { DisposableObject } from "../common/disposable-object";
|
||||
import type { CoreQueryResults } from "../query-server";
|
||||
import {
|
||||
getQuickEvalContext,
|
||||
QueryOutputDir,
|
||||
saveBeforeStart,
|
||||
validateQueryUri,
|
||||
} from "../run-queries-shared";
|
||||
import { QueryOutputDir } from "../local-queries/query-output-dir";
|
||||
import type { QLResolvedDebugConfiguration } from "./debug-configuration";
|
||||
import type {
|
||||
AnyProtocolMessage,
|
||||
|
||||
@@ -7,7 +7,7 @@ import type {
|
||||
import type { DatabaseItem } from "../../databases/local-databases";
|
||||
import type { ChildAstItem, AstItem } from "./ast-viewer";
|
||||
import type { Uri } from "vscode";
|
||||
import type { QueryOutputDir } from "../../run-queries-shared";
|
||||
import type { QueryOutputDir } from "../../local-queries/query-output-dir";
|
||||
import { fileRangeFromURI } from "../contextual/file-range-from-uri";
|
||||
import { mapUrlValue } from "../../common/bqrs-raw-results-mapper";
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
} from "./query-resolver";
|
||||
import type { CancellationToken, LocationLink } from "vscode";
|
||||
import { Uri } from "vscode";
|
||||
import type { QueryOutputDir } from "../../run-queries-shared";
|
||||
import type { QueryOutputDir } from "../../local-queries/query-output-dir";
|
||||
import type { QueryRunner } from "../../query-server";
|
||||
import { QueryResultType } from "../../query-server/messages";
|
||||
import { fileRangeFromURI } from "./file-range-from-uri";
|
||||
|
||||
@@ -29,7 +29,8 @@ import type {
|
||||
DatabaseItem,
|
||||
DatabaseManager,
|
||||
} from "../databases/local-databases";
|
||||
import type { QueryOutputDir, SelectedQuery } from "../run-queries-shared";
|
||||
import type { SelectedQuery } from "../run-queries-shared";
|
||||
import type { QueryOutputDir } from "./query-output-dir";
|
||||
import {
|
||||
createInitialQueryInfo,
|
||||
createTimestampFile,
|
||||
|
||||
@@ -9,9 +9,9 @@ import type { QueryHistoryManager } from "../query-history/query-history-manager
|
||||
import type { DatabaseItem } from "../databases/local-databases";
|
||||
import type {
|
||||
EvaluatorLogPaths,
|
||||
QueryOutputDir,
|
||||
QueryWithResults,
|
||||
} from "../run-queries-shared";
|
||||
import type { QueryOutputDir } from "./query-output-dir";
|
||||
import {
|
||||
generateEvalLogSummaries,
|
||||
logEndSummary,
|
||||
|
||||
75
extensions/ql-vscode/src/local-queries/query-output-dir.ts
Normal file
75
extensions/ql-vscode/src/local-queries/query-output-dir.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
import { join } from "path";
|
||||
|
||||
function findQueryLogFile(resultPath: string): string {
|
||||
return join(resultPath, "query.log");
|
||||
}
|
||||
|
||||
function findQueryEvalLogFile(resultPath: string): string {
|
||||
return join(resultPath, "evaluator-log.jsonl");
|
||||
}
|
||||
|
||||
function findQueryEvalLogSummaryFile(resultPath: string): string {
|
||||
return join(resultPath, "evaluator-log.summary");
|
||||
}
|
||||
|
||||
function findJsonQueryEvalLogSummaryFile(resultPath: string): string {
|
||||
return join(resultPath, "evaluator-log.summary.jsonl");
|
||||
}
|
||||
|
||||
function findQueryEvalLogSummarySymbolsFile(resultPath: string): string {
|
||||
return join(resultPath, "evaluator-log.summary.symbols.json");
|
||||
}
|
||||
|
||||
function findQueryEvalLogEndSummaryFile(resultPath: string): string {
|
||||
return join(resultPath, "evaluator-log-end.summary");
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides paths to the files that can be generated in the output directory for a query evaluation.
|
||||
*/
|
||||
export class QueryOutputDir {
|
||||
constructor(public readonly querySaveDir: string) {}
|
||||
|
||||
get dilPath() {
|
||||
return join(this.querySaveDir, "results.dil");
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the path that the compiled query is if it exists. Note that it only exists when using the legacy query server.
|
||||
*/
|
||||
get compileQueryPath() {
|
||||
return join(this.querySaveDir, "compiledQuery.qlo");
|
||||
}
|
||||
|
||||
get csvPath() {
|
||||
return join(this.querySaveDir, "results.csv");
|
||||
}
|
||||
|
||||
get logPath() {
|
||||
return findQueryLogFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get evalLogPath() {
|
||||
return findQueryEvalLogFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get evalLogSummaryPath() {
|
||||
return findQueryEvalLogSummaryFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get jsonEvalLogSummaryPath() {
|
||||
return findJsonQueryEvalLogSummaryFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get evalLogSummarySymbolsPath() {
|
||||
return findQueryEvalLogSummarySymbolsFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get evalLogEndSummaryPath() {
|
||||
return findQueryEvalLogEndSummaryFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get bqrsPath() {
|
||||
return join(this.querySaveDir, "results.bqrs");
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
import type { InitialQueryInfo } from "../../query-results";
|
||||
import { LocalQueryInfo, CompletedQueryInfo } from "../../query-results";
|
||||
import { QueryEvaluationInfo, QueryOutputDir } from "../../run-queries-shared";
|
||||
import { QueryEvaluationInfo } from "../../run-queries-shared";
|
||||
import { QueryOutputDir } from "../../local-queries/query-output-dir";
|
||||
import { SortDirectionDto } from "./query-history-local-query-dto";
|
||||
import type {
|
||||
CompletedQueryInfoDto,
|
||||
QueryEvaluationInfoDto,
|
||||
@@ -10,7 +12,6 @@ import type {
|
||||
SortedResultSetInfoDto,
|
||||
RawResultsSortStateDto,
|
||||
} from "./query-history-local-query-dto";
|
||||
import { SortDirectionDto } from "./query-history-local-query-dto";
|
||||
import type {
|
||||
InterpretedResultsSortState,
|
||||
RawResultsSortState,
|
||||
|
||||
@@ -19,9 +19,9 @@ import { QueryStatus } from "./query-history/query-status";
|
||||
import type {
|
||||
EvaluatorLogPaths,
|
||||
QueryEvaluationInfo,
|
||||
QueryOutputDir,
|
||||
QueryWithResults,
|
||||
} from "./run-queries-shared";
|
||||
import type { QueryOutputDir } from "./local-queries/query-output-dir";
|
||||
import { sarifParser } from "./common/sarif-parser";
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import type { CancellationToken } from "vscode";
|
||||
import vscode from "vscode";
|
||||
import { window } from "vscode";
|
||||
import type { CancellationToken, MessageItem } from "vscode";
|
||||
import type { CodeQLCliServer } from "../codeql-cli/cli";
|
||||
import type { ProgressCallback } from "../common/vscode/progress";
|
||||
import { UserCancellationException } from "../common/vscode/progress";
|
||||
import type { DatabaseItem } from "../databases/local-databases";
|
||||
import { QueryOutputDir } from "../run-queries-shared";
|
||||
import type { DatabaseItem } from "../databases/local-databases/database-item";
|
||||
import { QueryOutputDir } from "../local-queries/query-output-dir";
|
||||
import type {
|
||||
ClearCacheParams,
|
||||
Position,
|
||||
@@ -178,11 +178,11 @@ export class QueryRunner {
|
||||
): Promise<void> {
|
||||
const yesItem = { title: "Yes", isCloseAffordance: false };
|
||||
const noItem = { title: "No", isCloseAffordance: true };
|
||||
const dialogOptions: vscode.MessageItem[] = [yesItem, noItem];
|
||||
const dialogOptions: MessageItem[] = [yesItem, noItem];
|
||||
|
||||
const message = `Should the database ${dbItem.databaseUri.fsPath} be destructively upgraded?\n\nThis should not be necessary to run queries
|
||||
as we will non-destructively update it anyway.`;
|
||||
const chosenItem = await vscode.window.showInformationMessage(
|
||||
const chosenItem = await window.showInformationMessage(
|
||||
message,
|
||||
{ modal: true },
|
||||
...dialogOptions,
|
||||
|
||||
@@ -2,7 +2,7 @@ import type { CancellationToken } from "vscode";
|
||||
import type { ProgressCallback } from "../common/vscode/progress";
|
||||
import type { RunQueryParams } from "./messages";
|
||||
import { runQuery } from "./messages";
|
||||
import type { QueryOutputDir } from "../run-queries-shared";
|
||||
import type { QueryOutputDir } from "../local-queries/query-output-dir";
|
||||
import type { QueryServerClient } from "./query-server-client";
|
||||
import type { CoreQueryResults, CoreQueryTarget } from "./query-runner";
|
||||
import type { BaseLogger } from "../common/logging";
|
||||
|
||||
@@ -15,7 +15,7 @@ import {
|
||||
} from "fs-extra";
|
||||
import type { InitialQueryInfo } from "./query-results";
|
||||
import { ensureMetadataIsComplete } from "./query-results";
|
||||
import { isQuickQueryPath } from "./local-queries";
|
||||
import { isQuickQueryPath } from "./local-queries/quick-query";
|
||||
import { nanoid } from "nanoid";
|
||||
import type { CodeQLCliServer } from "./codeql-cli/cli";
|
||||
import { SELECT_QUERY_NAME } from "./language-support";
|
||||
@@ -30,6 +30,7 @@ import { extLogger } from "./common/logging/vscode";
|
||||
import { generateSummarySymbolsFile } from "./log-insights/summary-parser";
|
||||
import { getErrorMessage } from "./common/helpers-pure";
|
||||
import { createHash } from "crypto";
|
||||
import { QueryOutputDir } from "./local-queries/query-output-dir";
|
||||
|
||||
/**
|
||||
* run-queries.ts
|
||||
@@ -49,80 +50,6 @@ export interface EvaluatorLogPaths {
|
||||
summarySymbols: string | undefined;
|
||||
}
|
||||
|
||||
function findQueryLogFile(resultPath: string): string {
|
||||
return join(resultPath, "query.log");
|
||||
}
|
||||
|
||||
function findQueryEvalLogFile(resultPath: string): string {
|
||||
return join(resultPath, "evaluator-log.jsonl");
|
||||
}
|
||||
|
||||
function findQueryEvalLogSummaryFile(resultPath: string): string {
|
||||
return join(resultPath, "evaluator-log.summary");
|
||||
}
|
||||
|
||||
function findJsonQueryEvalLogSummaryFile(resultPath: string): string {
|
||||
return join(resultPath, "evaluator-log.summary.jsonl");
|
||||
}
|
||||
|
||||
function findQueryEvalLogSummarySymbolsFile(resultPath: string): string {
|
||||
return join(resultPath, "evaluator-log.summary.symbols.json");
|
||||
}
|
||||
|
||||
function findQueryEvalLogEndSummaryFile(resultPath: string): string {
|
||||
return join(resultPath, "evaluator-log-end.summary");
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides paths to the files that can be generated in the output directory for a query evaluation.
|
||||
*/
|
||||
export class QueryOutputDir {
|
||||
constructor(public readonly querySaveDir: string) {}
|
||||
|
||||
get dilPath() {
|
||||
return join(this.querySaveDir, "results.dil");
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the path that the compiled query is if it exists. Note that it only exists when using the legacy query server.
|
||||
*/
|
||||
get compileQueryPath() {
|
||||
return join(this.querySaveDir, "compiledQuery.qlo");
|
||||
}
|
||||
|
||||
get csvPath() {
|
||||
return join(this.querySaveDir, "results.csv");
|
||||
}
|
||||
|
||||
get logPath() {
|
||||
return findQueryLogFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get evalLogPath() {
|
||||
return findQueryEvalLogFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get evalLogSummaryPath() {
|
||||
return findQueryEvalLogSummaryFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get jsonEvalLogSummaryPath() {
|
||||
return findJsonQueryEvalLogSummaryFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get evalLogSummarySymbolsPath() {
|
||||
return findQueryEvalLogSummarySymbolsFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get evalLogEndSummaryPath() {
|
||||
return findQueryEvalLogEndSummaryFile(this.querySaveDir);
|
||||
}
|
||||
|
||||
get bqrsPath() {
|
||||
return join(this.querySaveDir, "results.bqrs");
|
||||
}
|
||||
}
|
||||
|
||||
export class QueryEvaluationInfo extends QueryOutputDir {
|
||||
// We extend `QueryOutputDir`, rather than having it as a property, because we need
|
||||
// `QueryOutputDir`'s `querySaveDir` property to be a property of `QueryEvaluationInfo`. This is
|
||||
|
||||
@@ -5,7 +5,7 @@ import type {
|
||||
QueryEvaluationInfo,
|
||||
QueryWithResults,
|
||||
} from "../../../src/run-queries-shared";
|
||||
import { QueryOutputDir } from "../../../src/run-queries-shared";
|
||||
import { QueryOutputDir } from "../../../src/local-queries/query-output-dir";
|
||||
import type { CancellationTokenSource } from "vscode";
|
||||
import type { QueryMetadata } from "../../../src/common/interface-types";
|
||||
import type { QueryLanguage } from "../../../src/common/query-language";
|
||||
|
||||
@@ -10,7 +10,7 @@ import type * as CodeQLProtocol from "../../../../src/debugger/debug-protocol";
|
||||
import { DisposableObject } from "../../../../src/common/disposable-object";
|
||||
import { QueryResultType } from "../../../../src/query-server/messages";
|
||||
import type { CoreCompletedQuery } from "../../../../src/query-server/query-runner";
|
||||
import { QueryOutputDir } from "../../../../src/run-queries-shared";
|
||||
import { QueryOutputDir } from "../../../../src/local-queries/query-output-dir";
|
||||
import type {
|
||||
QLDebugArgs,
|
||||
QLDebugConfiguration,
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
import { describeWithCodeQL } from "../../cli";
|
||||
import { withDebugController } from "./debug-controller";
|
||||
import type { CodeQLCliServer } from "../../../../src/codeql-cli/cli";
|
||||
import type { QueryOutputDir } from "../../../../src/run-queries-shared";
|
||||
import type { QueryOutputDir } from "../../../../src/local-queries/query-output-dir";
|
||||
import { createVSCodeCommandManager } from "../../../../src/common/vscode/commands";
|
||||
import type { AllCommands } from "../../../../src/common/commands";
|
||||
import { getDataFolderFilePath } from "../utils";
|
||||
|
||||
@@ -2,7 +2,7 @@ import { readFileSync } from "fs-extra";
|
||||
|
||||
import type { CodeQLCliServer } from "../../../../../src/codeql-cli/cli";
|
||||
import { Uri } from "vscode";
|
||||
import { QueryOutputDir } from "../../../../../src/run-queries-shared";
|
||||
import { QueryOutputDir } from "../../../../../src/local-queries/query-output-dir";
|
||||
import { mockDatabaseItem, mockedObject } from "../../../utils/mocking.helpers";
|
||||
import path from "path";
|
||||
import { AstBuilder } from "../../../../../src/language-support";
|
||||
|
||||
@@ -17,7 +17,7 @@ import { join } from "path";
|
||||
import { pathExists, readFile } from "fs-extra";
|
||||
import { load as loadYaml } from "js-yaml";
|
||||
import { CancellationTokenSource } from "vscode-jsonrpc";
|
||||
import { QueryOutputDir } from "../../../../src/run-queries-shared";
|
||||
import { QueryOutputDir } from "../../../../src/local-queries/query-output-dir";
|
||||
import type { ModelExtensionFile } from "../../../../src/model-editor/model-extension-file";
|
||||
|
||||
describe("runAutoModelQueries", () => {
|
||||
|
||||
@@ -17,7 +17,7 @@ import { Mode } from "../../../../src/model-editor/shared/mode";
|
||||
import { join } from "path";
|
||||
import type { CodeQLCliServer } from "../../../../src/codeql-cli/cli";
|
||||
import type { QueryRunner } from "../../../../src/query-server";
|
||||
import { QueryOutputDir } from "../../../../src/run-queries-shared";
|
||||
import { QueryOutputDir } from "../../../../src/local-queries/query-output-dir";
|
||||
|
||||
describe("runModelEditorQueries", () => {
|
||||
const language = Object.keys(fetchExternalApiQueries)[
|
||||
|
||||
@@ -8,7 +8,7 @@ import type { CodeQLCliServer } from "../../../../src/codeql-cli/cli";
|
||||
import type { QueryRunner } from "../../../../src/query-server";
|
||||
import { join } from "path";
|
||||
import { CancellationTokenSource } from "vscode-jsonrpc";
|
||||
import { QueryOutputDir } from "../../../../src/run-queries-shared";
|
||||
import { QueryOutputDir } from "../../../../src/local-queries/query-output-dir";
|
||||
import { runGenerateQueries } from "../../../../src/model-editor/generate";
|
||||
import { ruby } from "../../../../src/model-editor/languages/ruby";
|
||||
|
||||
|
||||
@@ -7,10 +7,8 @@ import { writeFileSync, mkdirpSync, writeFile } from "fs-extra";
|
||||
import type { InitialQueryInfo } from "../../../../../src/query-results";
|
||||
import { LocalQueryInfo } from "../../../../../src/query-results";
|
||||
import type { QueryWithResults } from "../../../../../src/run-queries-shared";
|
||||
import {
|
||||
QueryEvaluationInfo,
|
||||
QueryOutputDir,
|
||||
} from "../../../../../src/run-queries-shared";
|
||||
import { QueryEvaluationInfo } from "../../../../../src/run-queries-shared";
|
||||
import { QueryOutputDir } from "../../../../../src/local-queries/query-output-dir";
|
||||
import type { DatabaseInfo } from "../../../../../src/common/interface-types";
|
||||
import type { CancellationTokenSource } from "vscode";
|
||||
import { Uri } from "vscode";
|
||||
|
||||
@@ -13,15 +13,13 @@ import {
|
||||
interpretResultsSarif,
|
||||
} from "../../../src/query-results";
|
||||
import type { QueryWithResults } from "../../../src/run-queries-shared";
|
||||
import {
|
||||
QueryEvaluationInfo,
|
||||
QueryOutputDir,
|
||||
} from "../../../src/run-queries-shared";
|
||||
import { QueryEvaluationInfo } from "../../../src/run-queries-shared";
|
||||
import { QueryOutputDir } from "../../../src/local-queries/query-output-dir";
|
||||
import { SortDirection } from "../../../src/common/interface-types";
|
||||
import type {
|
||||
DatabaseInfo,
|
||||
SortedResultSetInfo,
|
||||
} from "../../../src/common/interface-types";
|
||||
import { SortDirection } from "../../../src/common/interface-types";
|
||||
import type { CodeQLCliServer, SourceInfo } from "../../../src/codeql-cli/cli";
|
||||
import type { CancellationTokenSource } from "vscode";
|
||||
import { Uri } from "vscode";
|
||||
|
||||
Reference in New Issue
Block a user