From 52f7cac0a960a36a208a63821fef7f855f61a965 Mon Sep 17 00:00:00 2001 From: Robert Date: Thu, 13 Jul 2023 09:10:44 +0100 Subject: [PATCH] Move saveModeledMethods to a separate file --- .../data-extensions-editor-view.ts | 32 ++++++------------- .../modeled-method-fs.ts | 32 +++++++++++++++++++ 2 files changed, 41 insertions(+), 23 deletions(-) create mode 100644 extensions/ql-vscode/src/data-extensions-editor/modeled-method-fs.ts diff --git a/extensions/ql-vscode/src/data-extensions-editor/data-extensions-editor-view.ts b/extensions/ql-vscode/src/data-extensions-editor/data-extensions-editor-view.ts index bf0b6fb54..7f21dc2c1 100644 --- a/extensions/ql-vscode/src/data-extensions-editor/data-extensions-editor-view.ts +++ b/extensions/ql-vscode/src/data-extensions-editor/data-extensions-editor-view.ts @@ -5,7 +5,6 @@ import { ViewColumn, window, } from "vscode"; -import { join } from "path"; import { RequestError } from "@octokit/request-error"; import { AbstractWebview, @@ -21,7 +20,7 @@ import { showAndLogExceptionWithTelemetry, showAndLogErrorMessage, } from "../common/logging"; -import { outputFile, readFile } from "fs-extra"; +import { readFile } from "fs-extra"; import { load as loadYaml } from "js-yaml"; import { DatabaseItem, DatabaseManager } from "../databases/local-databases"; import { CodeQLCliServer } from "../codeql-cli/cli"; @@ -34,7 +33,7 @@ import { showResolvableLocation } from "../databases/local-databases/locations"; import { decodeBqrsToExternalApiUsages } from "./bqrs"; import { redactableError } from "../common/errors"; import { readQueryResults, runQuery } from "./external-api-usage-query"; -import { createDataExtensionYamls, loadDataExtensionYaml } from "./yaml"; +import { loadDataExtensionYaml } from "./yaml"; import { ExternalApiUsage } from "./external-api-usage"; import { ModeledMethod } from "./modeled-method"; import { ExtensionPack } from "./shared/extension-pack"; @@ -47,6 +46,7 @@ import { enableFrameworkMode, showLlmGeneration } from "../config"; import { getAutoModelUsages } from "./auto-model-usages-query"; import { getOnDiskWorkspaceFolders } from "../common/vscode/workspace-folders"; import { Mode } from "./shared/mode"; +import { saveModeledMethods } from "./modeled-method-fs"; export class DataExtensionsEditorView extends AbstractWebview< ToDataExtensionsEditorMessage, @@ -111,9 +111,14 @@ export class DataExtensionsEditorView extends AbstractWebview< break; case "saveModeledMethods": - await this.saveModeledMethods( + await saveModeledMethods( + this.extensionPack, + this.databaseItem.name, + this.databaseItem.language, msg.externalApiUsages, msg.modeledMethods, + this.mode, + this.app.logger, ); await Promise.all([this.setViewState(), this.loadExternalApiUsages()]); @@ -182,25 +187,6 @@ export class DataExtensionsEditorView extends AbstractWebview< } } - protected async saveModeledMethods( - externalApiUsages: ExternalApiUsage[], - modeledMethods: Record, - ): Promise { - 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 { try { const extensions = await this.cliServer.resolveExtensions( diff --git a/extensions/ql-vscode/src/data-extensions-editor/modeled-method-fs.ts b/extensions/ql-vscode/src/data-extensions-editor/modeled-method-fs.ts new file mode 100644 index 000000000..9bbd69c57 --- /dev/null +++ b/extensions/ql-vscode/src/data-extensions-editor/modeled-method-fs.ts @@ -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, + mode: Mode, + logger: Logger, +): Promise { + 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`); +}