From 2db42e3eb0ec10a6cb4b52ebcac2b0ce4fdfcdba Mon Sep 17 00:00:00 2001 From: Robert Date: Thu, 13 Jul 2023 08:54:11 +0100 Subject: [PATCH] Pull out createDataExtensionYamls into yaml.ts --- .../data-extensions-editor-view.ts | 33 +++++-------------- .../src/data-extensions-editor/yaml.ts | 28 ++++++++++++++++ 2 files changed, 36 insertions(+), 25 deletions(-) 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 bc5e4580b..bf0b6fb54 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 @@ -34,11 +34,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 { - createDataExtensionYamlsForApplicationMode, - createDataExtensionYamlsForFrameworkMode, - loadDataExtensionYaml, -} from "./yaml"; +import { createDataExtensionYamls, loadDataExtensionYaml } from "./yaml"; import { ExternalApiUsage } from "./external-api-usage"; import { ModeledMethod } from "./modeled-method"; import { ExtensionPack } from "./shared/extension-pack"; @@ -190,26 +186,13 @@ export class DataExtensionsEditorView extends AbstractWebview< externalApiUsages: ExternalApiUsage[], modeledMethods: Record, ): Promise { - let yamls: Record; - switch (this.mode) { - case Mode.Application: - yamls = createDataExtensionYamlsForApplicationMode( - this.databaseItem.language, - externalApiUsages, - modeledMethods, - ); - break; - case Mode.Framework: - yamls = createDataExtensionYamlsForFrameworkMode( - this.databaseItem.name, - this.databaseItem.language, - externalApiUsages, - modeledMethods, - ); - break; - default: - assertNever(this.mode); - } + 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); diff --git a/extensions/ql-vscode/src/data-extensions-editor/yaml.ts b/extensions/ql-vscode/src/data-extensions-editor/yaml.ts index 6fb35c2e9..89e5932ad 100644 --- a/extensions/ql-vscode/src/data-extensions-editor/yaml.ts +++ b/extensions/ql-vscode/src/data-extensions-editor/yaml.ts @@ -11,6 +11,8 @@ import { import * as dataSchemaJson from "./data-schema.json"; import { sanitizeExtensionPackName } from "./extension-pack-name"; +import { Mode } from "./shared/mode"; +import { assertNever } from "../common/helpers-pure"; const ajv = new Ajv({ allErrors: true }); const dataSchemaValidate = ajv.compile(dataSchemaJson); @@ -80,6 +82,32 @@ export function createDataExtensionYaml( ${extensions.join("\n")}`; } +export function createDataExtensionYamls( + databaseName: string, + language: string, + externalApiUsages: ExternalApiUsage[], + modeledMethods: Record, + mode: Mode, +) { + switch (mode) { + case Mode.Application: + return createDataExtensionYamlsForApplicationMode( + language, + externalApiUsages, + modeledMethods, + ); + case Mode.Framework: + return createDataExtensionYamlsForFrameworkMode( + databaseName, + language, + externalApiUsages, + modeledMethods, + ); + default: + assertNever(mode); + } +} + export function createDataExtensionYamlsForApplicationMode( language: string, externalApiUsages: ExternalApiUsage[],