Skip to content

Commit 82f9617

Browse files
committed
Move loading of YAML from webview to extension
1 parent df2e22b commit 82f9617

File tree

3 files changed

+19
-14
lines changed

3 files changed

+19
-14
lines changed

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@ import { dump as dumpYaml, load as loadYaml } from "js-yaml";
2020
import {
2121
getOnDiskWorkspaceFolders,
2222
showAndLogExceptionWithTelemetry,
23+
showAndLogWarningMessage,
2324
} from "../helpers";
2425
import { DatabaseItem } from "../local-databases";
2526
import { CodeQLCliServer } from "../cli";
2627
import { asError, assertNever, getErrorMessage } from "../pure/helpers-pure";
2728
import { decodeBqrsToExternalApiUsages } from "./bqrs";
2829
import { redactableError } from "../pure/errors";
30+
import { loadDataExtensionYaml } from "./yaml";
2931

3032
export class DataExtensionsEditorView extends AbstractWebview<
3133
ToDataExtensionsEditorMessage,
@@ -113,9 +115,16 @@ export class DataExtensionsEditorView extends AbstractWebview<
113115
filename: modelFilename,
114116
});
115117

118+
const existingModeledMethods = loadDataExtensionYaml(data);
119+
120+
if (!existingModeledMethods) {
121+
void showAndLogWarningMessage("Failed to parse data extension YAML.");
122+
return;
123+
}
124+
116125
await this.postMessage({
117-
t: "setExistingYamlData",
118-
data,
126+
t: "setExistingModeledMethods",
127+
existingModeledMethods,
119128
});
120129
} catch (e: unknown) {
121130
void extLogger.log(`Unable to read data extension YAML: ${e}`);

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { RepositoriesFilterSortStateWithIds } from "./variant-analysis-filter-so
1515
import { ErrorLike } from "./errors";
1616
import { DataFlowPaths } from "../variant-analysis/shared/data-flow-paths";
1717
import { ExternalApiUsage } from "../data-extensions-editor/external-api-usage";
18+
import { ModeledMethod } from "../data-extensions-editor/modeled-method";
1819

1920
/**
2021
* This module contains types and code that are shared between
@@ -492,9 +493,9 @@ export interface ShowProgressMessage {
492493
message: string;
493494
}
494495

495-
export interface SetExistingYamlDataMessage {
496-
t: "setExistingYamlData";
497-
data: any;
496+
export interface SetExistingModeledMethods {
497+
t: "setExistingModeledMethods";
498+
existingModeledMethods: Record<string, ModeledMethod>;
498499
}
499500

500501
export interface ApplyDataExtensionYamlMessage {
@@ -505,7 +506,7 @@ export interface ApplyDataExtensionYamlMessage {
505506
export type ToDataExtensionsEditorMessage =
506507
| SetExternalApiUsagesMessage
507508
| ShowProgressMessage
508-
| SetExistingYamlDataMessage;
509+
| SetExistingModeledMethods;
509510

510511
export type FromDataExtensionsEditorMessage =
511512
| ViewLoadedMsg

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

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@ 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 {
20-
createDataExtensionYaml,
21-
loadDataExtensionYaml,
22-
} from "../../data-extensions-editor/yaml";
19+
import { createDataExtensionYaml } from "../../data-extensions-editor/yaml";
2320
import { calculateSupportedPercentage } from "./supported";
2421

2522
export const DataExtensionsEditorContainer = styled.div`
@@ -61,12 +58,10 @@ export function DataExtensionsEditor(): JSX.Element {
6158
case "showProgress":
6259
setProgress(msg);
6360
break;
64-
case "setExistingYamlData":
61+
case "setExistingModeledMethods":
6562
setModeledMethods((oldModeledMethods) => {
66-
const existingModeledMethods = loadDataExtensionYaml(msg.data);
67-
6863
return {
69-
...existingModeledMethods,
64+
...msg.existingModeledMethods,
7065
...oldModeledMethods,
7166
};
7267
});

0 commit comments

Comments
 (0)