Pull out createDataExtensionYamls into yaml.ts
This commit is contained in:
@@ -34,11 +34,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 {
|
import { createDataExtensionYamls, loadDataExtensionYaml } from "./yaml";
|
||||||
createDataExtensionYamlsForApplicationMode,
|
|
||||||
createDataExtensionYamlsForFrameworkMode,
|
|
||||||
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";
|
||||||
@@ -190,26 +186,13 @@ export class DataExtensionsEditorView extends AbstractWebview<
|
|||||||
externalApiUsages: ExternalApiUsage[],
|
externalApiUsages: ExternalApiUsage[],
|
||||||
modeledMethods: Record<string, ModeledMethod>,
|
modeledMethods: Record<string, ModeledMethod>,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
let yamls: Record<string, string>;
|
const yamls = createDataExtensionYamls(
|
||||||
switch (this.mode) {
|
this.databaseItem.name,
|
||||||
case Mode.Application:
|
this.databaseItem.language,
|
||||||
yamls = createDataExtensionYamlsForApplicationMode(
|
externalApiUsages,
|
||||||
this.databaseItem.language,
|
modeledMethods,
|
||||||
externalApiUsages,
|
this.mode,
|
||||||
modeledMethods,
|
);
|
||||||
);
|
|
||||||
break;
|
|
||||||
case Mode.Framework:
|
|
||||||
yamls = createDataExtensionYamlsForFrameworkMode(
|
|
||||||
this.databaseItem.name,
|
|
||||||
this.databaseItem.language,
|
|
||||||
externalApiUsages,
|
|
||||||
modeledMethods,
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
assertNever(this.mode);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const [filename, yaml] of Object.entries(yamls)) {
|
for (const [filename, yaml] of Object.entries(yamls)) {
|
||||||
await outputFile(join(this.extensionPack.path, filename), yaml);
|
await outputFile(join(this.extensionPack.path, filename), yaml);
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import {
|
|||||||
|
|
||||||
import * as dataSchemaJson from "./data-schema.json";
|
import * as dataSchemaJson from "./data-schema.json";
|
||||||
import { sanitizeExtensionPackName } from "./extension-pack-name";
|
import { sanitizeExtensionPackName } from "./extension-pack-name";
|
||||||
|
import { Mode } from "./shared/mode";
|
||||||
|
import { assertNever } from "../common/helpers-pure";
|
||||||
|
|
||||||
const ajv = new Ajv({ allErrors: true });
|
const ajv = new Ajv({ allErrors: true });
|
||||||
const dataSchemaValidate = ajv.compile(dataSchemaJson);
|
const dataSchemaValidate = ajv.compile(dataSchemaJson);
|
||||||
@@ -80,6 +82,32 @@ export function createDataExtensionYaml(
|
|||||||
${extensions.join("\n")}`;
|
${extensions.join("\n")}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function createDataExtensionYamls(
|
||||||
|
databaseName: string,
|
||||||
|
language: string,
|
||||||
|
externalApiUsages: ExternalApiUsage[],
|
||||||
|
modeledMethods: Record<string, ModeledMethod>,
|
||||||
|
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(
|
export function createDataExtensionYamlsForApplicationMode(
|
||||||
language: string,
|
language: string,
|
||||||
externalApiUsages: ExternalApiUsage[],
|
externalApiUsages: ExternalApiUsage[],
|
||||||
|
|||||||
Reference in New Issue
Block a user