Remove separation between generate queries options
This commit is contained in:
@@ -9,40 +9,26 @@ import { ModeledMethod } from "./modeled-method";
|
||||
import { runQuery } from "../local-queries/run-query";
|
||||
import { QueryConstraints, resolveQueries } from "../local-queries";
|
||||
import { DecodedBqrs } from "../common/bqrs-cli-types";
|
||||
|
||||
/**
|
||||
* Options that are set by the caller of `runGenerateQueries`.
|
||||
*/
|
||||
type GenerateQueriesQueryOptions = {
|
||||
type GenerateQueriesOptions = {
|
||||
queryConstraints: QueryConstraints;
|
||||
filterQueries?: (queryPath: string) => boolean;
|
||||
parseResults: (
|
||||
queryPath: string,
|
||||
results: DecodedBqrs,
|
||||
) => ModeledMethod[] | Promise<ModeledMethod[]>;
|
||||
};
|
||||
onResults: (results: ModeledMethod[]) => void | Promise<void>;
|
||||
|
||||
/**
|
||||
* Options that are passed through by the caller of `runGenerateQueries`.
|
||||
*/
|
||||
type GenerateQueriesOptions = {
|
||||
cliServer: CodeQLCliServer;
|
||||
queryRunner: QueryRunner;
|
||||
queryStorageDir: string;
|
||||
databaseItem: DatabaseItem;
|
||||
progress: ProgressCallback;
|
||||
token: CancellationToken;
|
||||
onResults: (results: ModeledMethod[]) => void | Promise<void>;
|
||||
};
|
||||
|
||||
export async function runGenerateQueries(
|
||||
{
|
||||
queryConstraints,
|
||||
filterQueries,
|
||||
parseResults,
|
||||
}: GenerateQueriesQueryOptions,
|
||||
{ onResults, ...options }: GenerateQueriesOptions,
|
||||
) {
|
||||
export async function runGenerateQueries(options: GenerateQueriesOptions) {
|
||||
const { queryConstraints, filterQueries, parseResults, onResults } = options;
|
||||
|
||||
options.progress({
|
||||
message: "Resolving queries",
|
||||
step: 1,
|
||||
@@ -84,7 +70,7 @@ async function runSingleGenerateQuery(
|
||||
databaseItem,
|
||||
progress,
|
||||
token,
|
||||
}: Omit<GenerateQueriesOptions, "onResults">,
|
||||
}: GenerateQueriesOptions,
|
||||
): Promise<DecodedBqrs | undefined> {
|
||||
const queryBasename = basename(queryPath);
|
||||
|
||||
|
||||
@@ -509,8 +509,7 @@ export class ModelEditorView extends AbstractWebview<
|
||||
});
|
||||
|
||||
try {
|
||||
await runGenerateQueries(
|
||||
{
|
||||
await runGenerateQueries({
|
||||
queryConstraints: modelGeneration.queryConstraints,
|
||||
filterQueries: modelGeneration.filterQueries,
|
||||
parseResults: (queryPath, results) =>
|
||||
@@ -520,19 +519,16 @@ export class ModelEditorView extends AbstractWebview<
|
||||
modelsAsDataLanguage,
|
||||
this.app.logger,
|
||||
),
|
||||
onResults: async (modeledMethods) => {
|
||||
this.addModeledMethodsFromArray(modeledMethods);
|
||||
},
|
||||
{
|
||||
cliServer: this.cliServer,
|
||||
queryRunner: this.queryRunner,
|
||||
queryStorageDir: this.queryStorageDir,
|
||||
databaseItem: addedDatabase ?? this.databaseItem,
|
||||
onResults: async (modeledMethods) => {
|
||||
this.addModeledMethodsFromArray(modeledMethods);
|
||||
},
|
||||
progress,
|
||||
token: tokenSource.token,
|
||||
},
|
||||
);
|
||||
});
|
||||
} catch (e: unknown) {
|
||||
void showAndLogExceptionWithTelemetry(
|
||||
this.app.logger,
|
||||
|
||||
@@ -122,11 +122,9 @@ describe("runGenerateQueries", () => {
|
||||
queryStorageDir: "/tmp/queries",
|
||||
progress: jest.fn(),
|
||||
token: new CancellationTokenSource().token,
|
||||
onResults,
|
||||
};
|
||||
|
||||
await runGenerateQueries(
|
||||
{
|
||||
await runGenerateQueries({
|
||||
queryConstraints: modelGeneration.queryConstraints,
|
||||
filterQueries: modelGeneration.filterQueries,
|
||||
parseResults: (queryPath, results) =>
|
||||
@@ -136,9 +134,9 @@ describe("runGenerateQueries", () => {
|
||||
modelsAsDataLanguage,
|
||||
createMockLogger(),
|
||||
),
|
||||
},
|
||||
options,
|
||||
);
|
||||
onResults,
|
||||
...options,
|
||||
});
|
||||
expect(onResults).toHaveBeenCalledWith([
|
||||
{
|
||||
input: "Argument[self]",
|
||||
|
||||
Reference in New Issue
Block a user