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