Skip to content

Commit c0818d8

Browse files
committed
Move creation of YAML string from webview to extension
1 parent 82f9617 commit c0818d8

File tree

3 files changed

+21
-15
lines changed

3 files changed

+21
-15
lines changed

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

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ import { CodeQLCliServer } from "../cli";
2727
import { asError, assertNever, getErrorMessage } from "../pure/helpers-pure";
2828
import { decodeBqrsToExternalApiUsages } from "./bqrs";
2929
import { redactableError } from "../pure/errors";
30-
import { loadDataExtensionYaml } from "./yaml";
30+
import { createDataExtensionYaml, loadDataExtensionYaml } from "./yaml";
31+
import { ExternalApiUsage } from "./external-api-usage";
32+
import { ModeledMethod } from "./modeled-method";
3133

3234
export class DataExtensionsEditorView extends AbstractWebview<
3335
ToDataExtensionsEditorMessage,
@@ -72,8 +74,11 @@ export class DataExtensionsEditorView extends AbstractWebview<
7274
await this.onWebViewLoaded();
7375

7476
break;
75-
case "applyDataExtensionYaml":
76-
await this.saveYaml(msg.yaml);
77+
case "saveModeledMethods":
78+
await this.saveModeledMethods(
79+
msg.externalApiUsages,
80+
msg.modeledMethods,
81+
);
7782
await this.loadExternalApiUsages();
7883

7984
break;
@@ -91,12 +96,17 @@ export class DataExtensionsEditorView extends AbstractWebview<
9196
]);
9297
}
9398

94-
protected async saveYaml(yaml: string): Promise<void> {
99+
protected async saveModeledMethods(
100+
externalApiUsages: ExternalApiUsage[],
101+
modeledMethods: Record<string, ModeledMethod>,
102+
): Promise<void> {
95103
const modelFilename = this.calculateModelFilename();
96104
if (!modelFilename) {
97105
return;
98106
}
99107

108+
const yaml = createDataExtensionYaml(externalApiUsages, modeledMethods);
109+
100110
await writeFile(modelFilename, yaml);
101111

102112
void extLogger.log(`Saved data extension YAML to ${modelFilename}`);

extensions/ql-vscode/src/pure/interface-types.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -498,9 +498,10 @@ export interface SetExistingModeledMethods {
498498
existingModeledMethods: Record<string, ModeledMethod>;
499499
}
500500

501-
export interface ApplyDataExtensionYamlMessage {
502-
t: "applyDataExtensionYaml";
503-
yaml: string;
501+
export interface SaveModeledMethods {
502+
t: "saveModeledMethods";
503+
externalApiUsages: ExternalApiUsage[];
504+
modeledMethods: Record<string, ModeledMethod>;
504505
}
505506

506507
export type ToDataExtensionsEditorMessage =
@@ -510,4 +511,4 @@ export type ToDataExtensionsEditorMessage =
510511

511512
export type FromDataExtensionsEditorMessage =
512513
| ViewLoadedMsg
513-
| ApplyDataExtensionYamlMessage;
514+
| SaveModeledMethods;

extensions/ql-vscode/src/view/data-extensions-editor/DataExtensionsEditor.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import { ModeledMethod } from "../../data-extensions-editor/modeled-method";
1616
import { MethodRow } from "./MethodRow";
1717
import { assertNever } from "../../pure/helpers-pure";
1818
import { vscode } from "../vscode-api";
19-
import { createDataExtensionYaml } from "../../data-extensions-editor/yaml";
2019
import { calculateSupportedPercentage } from "./supported";
2120

2221
export const DataExtensionsEditorContainer = styled.div`
@@ -101,14 +100,10 @@ export function DataExtensionsEditor(): JSX.Element {
101100
);
102101

103102
const onApplyClick = useCallback(() => {
104-
const yamlString = createDataExtensionYaml(
103+
vscode.postMessage({
104+
t: "saveModeledMethods",
105105
externalApiUsages,
106106
modeledMethods,
107-
);
108-
109-
vscode.postMessage({
110-
t: "applyDataExtensionYaml",
111-
yaml: yamlString,
112107
});
113108
}, [externalApiUsages, modeledMethods]);
114109

0 commit comments

Comments
 (0)