Move saveModeledMethods to a separate file

This commit is contained in:
Robert
2023-07-13 09:10:44 +01:00
parent 2db42e3eb0
commit 52f7cac0a9
2 changed files with 41 additions and 23 deletions

View File

@@ -5,7 +5,6 @@ import {
ViewColumn, ViewColumn,
window, window,
} from "vscode"; } from "vscode";
import { join } from "path";
import { RequestError } from "@octokit/request-error"; import { RequestError } from "@octokit/request-error";
import { import {
AbstractWebview, AbstractWebview,
@@ -21,7 +20,7 @@ import {
showAndLogExceptionWithTelemetry, showAndLogExceptionWithTelemetry,
showAndLogErrorMessage, showAndLogErrorMessage,
} from "../common/logging"; } from "../common/logging";
import { outputFile, readFile } from "fs-extra"; import { readFile } from "fs-extra";
import { load as loadYaml } from "js-yaml"; import { load as loadYaml } from "js-yaml";
import { DatabaseItem, DatabaseManager } from "../databases/local-databases"; import { DatabaseItem, DatabaseManager } from "../databases/local-databases";
import { CodeQLCliServer } from "../codeql-cli/cli"; import { CodeQLCliServer } from "../codeql-cli/cli";
@@ -34,7 +33,7 @@ import { showResolvableLocation } from "../databases/local-databases/locations";
import { decodeBqrsToExternalApiUsages } from "./bqrs"; import { decodeBqrsToExternalApiUsages } from "./bqrs";
import { redactableError } from "../common/errors"; import { redactableError } from "../common/errors";
import { readQueryResults, runQuery } from "./external-api-usage-query"; import { readQueryResults, runQuery } from "./external-api-usage-query";
import { createDataExtensionYamls, loadDataExtensionYaml } from "./yaml"; import { loadDataExtensionYaml } from "./yaml";
import { ExternalApiUsage } from "./external-api-usage"; import { ExternalApiUsage } from "./external-api-usage";
import { ModeledMethod } from "./modeled-method"; import { ModeledMethod } from "./modeled-method";
import { ExtensionPack } from "./shared/extension-pack"; import { ExtensionPack } from "./shared/extension-pack";
@@ -47,6 +46,7 @@ import { enableFrameworkMode, showLlmGeneration } from "../config";
import { getAutoModelUsages } from "./auto-model-usages-query"; import { getAutoModelUsages } from "./auto-model-usages-query";
import { getOnDiskWorkspaceFolders } from "../common/vscode/workspace-folders"; import { getOnDiskWorkspaceFolders } from "../common/vscode/workspace-folders";
import { Mode } from "./shared/mode"; import { Mode } from "./shared/mode";
import { saveModeledMethods } from "./modeled-method-fs";
export class DataExtensionsEditorView extends AbstractWebview< export class DataExtensionsEditorView extends AbstractWebview<
ToDataExtensionsEditorMessage, ToDataExtensionsEditorMessage,
@@ -111,9 +111,14 @@ export class DataExtensionsEditorView extends AbstractWebview<
break; break;
case "saveModeledMethods": case "saveModeledMethods":
await this.saveModeledMethods( await saveModeledMethods(
this.extensionPack,
this.databaseItem.name,
this.databaseItem.language,
msg.externalApiUsages, msg.externalApiUsages,
msg.modeledMethods, msg.modeledMethods,
this.mode,
this.app.logger,
); );
await Promise.all([this.setViewState(), this.loadExternalApiUsages()]); await Promise.all([this.setViewState(), this.loadExternalApiUsages()]);
@@ -182,25 +187,6 @@ export class DataExtensionsEditorView extends AbstractWebview<
} }
} }
protected async saveModeledMethods(
externalApiUsages: ExternalApiUsage[],
modeledMethods: Record<string, ModeledMethod>,
): Promise<void> {
const yamls = createDataExtensionYamls(
this.databaseItem.name,
this.databaseItem.language,
externalApiUsages,
modeledMethods,
this.mode,
);
for (const [filename, yaml] of Object.entries(yamls)) {
await outputFile(join(this.extensionPack.path, filename), yaml);
}
void this.app.logger.log(`Saved data extension YAML`);
}
protected async loadExistingModeledMethods(): Promise<void> { protected async loadExistingModeledMethods(): Promise<void> {
try { try {
const extensions = await this.cliServer.resolveExtensions( const extensions = await this.cliServer.resolveExtensions(

View File

@@ -0,0 +1,32 @@
import { outputFile } from "fs-extra";
import { ExternalApiUsage } from "./external-api-usage";
import { ModeledMethod } from "./modeled-method";
import { Mode } from "./shared/mode";
import { createDataExtensionYamls } from "./yaml";
import { join } from "path";
import { ExtensionPack } from "./shared/extension-pack";
import { Logger } from "../common/logging";
export async function saveModeledMethods(
extensionPack: ExtensionPack,
databaseName: string,
language: string,
externalApiUsages: ExternalApiUsage[],
modeledMethods: Record<string, ModeledMethod>,
mode: Mode,
logger: Logger,
): Promise<void> {
const yamls = createDataExtensionYamls(
databaseName,
language,
externalApiUsages,
modeledMethods,
mode,
);
for (const [filename, yaml] of Object.entries(yamls)) {
await outputFile(join(extensionPack.path, filename), yaml);
}
void logger.log(`Saved data extension YAML`);
}