Skip to content

Commit 2db42e3

Browse files
Pull out createDataExtensionYamls into yaml.ts
1 parent 31fdc79 commit 2db42e3

2 files changed

Lines changed: 36 additions & 25 deletions

File tree

extensions/ql-vscode/src/data-extensions-editor/data-extensions-editor-view.ts

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,7 @@ import { showResolvableLocation } from "../databases/local-databases/locations";
3434
import { decodeBqrsToExternalApiUsages } from "./bqrs";
3535
import { redactableError } from "../common/errors";
3636
import { readQueryResults, runQuery } from "./external-api-usage-query";
37-
import {
38-
createDataExtensionYamlsForApplicationMode,
39-
createDataExtensionYamlsForFrameworkMode,
40-
loadDataExtensionYaml,
41-
} from "./yaml";
37+
import { createDataExtensionYamls, loadDataExtensionYaml } from "./yaml";
4238
import { ExternalApiUsage } from "./external-api-usage";
4339
import { ModeledMethod } from "./modeled-method";
4440
import { ExtensionPack } from "./shared/extension-pack";
@@ -190,26 +186,13 @@ export class DataExtensionsEditorView extends AbstractWebview<
190186
externalApiUsages: ExternalApiUsage[],
191187
modeledMethods: Record<string, ModeledMethod>,
192188
): Promise<void> {
193-
let yamls: Record<string, string>;
194-
switch (this.mode) {
195-
case Mode.Application:
196-
yamls = createDataExtensionYamlsForApplicationMode(
197-
this.databaseItem.language,
198-
externalApiUsages,
199-
modeledMethods,
200-
);
201-
break;
202-
case Mode.Framework:
203-
yamls = createDataExtensionYamlsForFrameworkMode(
204-
this.databaseItem.name,
205-
this.databaseItem.language,
206-
externalApiUsages,
207-
modeledMethods,
208-
);
209-
break;
210-
default:
211-
assertNever(this.mode);
212-
}
189+
const yamls = createDataExtensionYamls(
190+
this.databaseItem.name,
191+
this.databaseItem.language,
192+
externalApiUsages,
193+
modeledMethods,
194+
this.mode,
195+
);
213196

214197
for (const [filename, yaml] of Object.entries(yamls)) {
215198
await outputFile(join(this.extensionPack.path, filename), yaml);

extensions/ql-vscode/src/data-extensions-editor/yaml.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import {
1111

1212
import * as dataSchemaJson from "./data-schema.json";
1313
import { sanitizeExtensionPackName } from "./extension-pack-name";
14+
import { Mode } from "./shared/mode";
15+
import { assertNever } from "../common/helpers-pure";
1416

1517
const ajv = new Ajv({ allErrors: true });
1618
const dataSchemaValidate = ajv.compile(dataSchemaJson);
@@ -80,6 +82,32 @@ export function createDataExtensionYaml(
8082
${extensions.join("\n")}`;
8183
}
8284

85+
export function createDataExtensionYamls(
86+
databaseName: string,
87+
language: string,
88+
externalApiUsages: ExternalApiUsage[],
89+
modeledMethods: Record<string, ModeledMethod>,
90+
mode: Mode,
91+
) {
92+
switch (mode) {
93+
case Mode.Application:
94+
return createDataExtensionYamlsForApplicationMode(
95+
language,
96+
externalApiUsages,
97+
modeledMethods,
98+
);
99+
case Mode.Framework:
100+
return createDataExtensionYamlsForFrameworkMode(
101+
databaseName,
102+
language,
103+
externalApiUsages,
104+
modeledMethods,
105+
);
106+
default:
107+
assertNever(mode);
108+
}
109+
}
110+
83111
export function createDataExtensionYamlsForApplicationMode(
84112
language: string,
85113
externalApiUsages: ExternalApiUsage[],

0 commit comments

Comments
 (0)