Move creation of YAML string from webview to extension
This commit is contained in:
@@ -27,7 +27,9 @@ import { CodeQLCliServer } from "../cli";
|
||||
import { asError, assertNever, getErrorMessage } from "../pure/helpers-pure";
|
||||
import { decodeBqrsToExternalApiUsages } from "./bqrs";
|
||||
import { redactableError } from "../pure/errors";
|
||||
import { loadDataExtensionYaml } from "./yaml";
|
||||
import { createDataExtensionYaml, loadDataExtensionYaml } from "./yaml";
|
||||
import { ExternalApiUsage } from "./external-api-usage";
|
||||
import { ModeledMethod } from "./modeled-method";
|
||||
|
||||
export class DataExtensionsEditorView extends AbstractWebview<
|
||||
ToDataExtensionsEditorMessage,
|
||||
@@ -72,8 +74,11 @@ export class DataExtensionsEditorView extends AbstractWebview<
|
||||
await this.onWebViewLoaded();
|
||||
|
||||
break;
|
||||
case "applyDataExtensionYaml":
|
||||
await this.saveYaml(msg.yaml);
|
||||
case "saveModeledMethods":
|
||||
await this.saveModeledMethods(
|
||||
msg.externalApiUsages,
|
||||
msg.modeledMethods,
|
||||
);
|
||||
await this.loadExternalApiUsages();
|
||||
|
||||
break;
|
||||
@@ -91,12 +96,17 @@ export class DataExtensionsEditorView extends AbstractWebview<
|
||||
]);
|
||||
}
|
||||
|
||||
protected async saveYaml(yaml: string): Promise<void> {
|
||||
protected async saveModeledMethods(
|
||||
externalApiUsages: ExternalApiUsage[],
|
||||
modeledMethods: Record<string, ModeledMethod>,
|
||||
): Promise<void> {
|
||||
const modelFilename = this.calculateModelFilename();
|
||||
if (!modelFilename) {
|
||||
return;
|
||||
}
|
||||
|
||||
const yaml = createDataExtensionYaml(externalApiUsages, modeledMethods);
|
||||
|
||||
await writeFile(modelFilename, yaml);
|
||||
|
||||
void extLogger.log(`Saved data extension YAML to ${modelFilename}`);
|
||||
|
||||
@@ -498,9 +498,10 @@ export interface SetExistingModeledMethods {
|
||||
existingModeledMethods: Record<string, ModeledMethod>;
|
||||
}
|
||||
|
||||
export interface ApplyDataExtensionYamlMessage {
|
||||
t: "applyDataExtensionYaml";
|
||||
yaml: string;
|
||||
export interface SaveModeledMethods {
|
||||
t: "saveModeledMethods";
|
||||
externalApiUsages: ExternalApiUsage[];
|
||||
modeledMethods: Record<string, ModeledMethod>;
|
||||
}
|
||||
|
||||
export type ToDataExtensionsEditorMessage =
|
||||
@@ -510,4 +511,4 @@ export type ToDataExtensionsEditorMessage =
|
||||
|
||||
export type FromDataExtensionsEditorMessage =
|
||||
| ViewLoadedMsg
|
||||
| ApplyDataExtensionYamlMessage;
|
||||
| SaveModeledMethods;
|
||||
|
||||
@@ -16,7 +16,6 @@ import { ModeledMethod } from "../../data-extensions-editor/modeled-method";
|
||||
import { MethodRow } from "./MethodRow";
|
||||
import { assertNever } from "../../pure/helpers-pure";
|
||||
import { vscode } from "../vscode-api";
|
||||
import { createDataExtensionYaml } from "../../data-extensions-editor/yaml";
|
||||
import { calculateSupportedPercentage } from "./supported";
|
||||
|
||||
export const DataExtensionsEditorContainer = styled.div`
|
||||
@@ -101,14 +100,10 @@ export function DataExtensionsEditor(): JSX.Element {
|
||||
);
|
||||
|
||||
const onApplyClick = useCallback(() => {
|
||||
const yamlString = createDataExtensionYaml(
|
||||
vscode.postMessage({
|
||||
t: "saveModeledMethods",
|
||||
externalApiUsages,
|
||||
modeledMethods,
|
||||
);
|
||||
|
||||
vscode.postMessage({
|
||||
t: "applyDataExtensionYaml",
|
||||
yaml: yamlString,
|
||||
});
|
||||
}, [externalApiUsages, modeledMethods]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user