Move loading of YAML from webview to extension
This commit is contained in:
@@ -20,12 +20,14 @@ import { dump as dumpYaml, load as loadYaml } from "js-yaml";
|
||||
import {
|
||||
getOnDiskWorkspaceFolders,
|
||||
showAndLogExceptionWithTelemetry,
|
||||
showAndLogWarningMessage,
|
||||
} from "../helpers";
|
||||
import { DatabaseItem } from "../local-databases";
|
||||
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";
|
||||
|
||||
export class DataExtensionsEditorView extends AbstractWebview<
|
||||
ToDataExtensionsEditorMessage,
|
||||
@@ -113,9 +115,16 @@ export class DataExtensionsEditorView extends AbstractWebview<
|
||||
filename: modelFilename,
|
||||
});
|
||||
|
||||
const existingModeledMethods = loadDataExtensionYaml(data);
|
||||
|
||||
if (!existingModeledMethods) {
|
||||
void showAndLogWarningMessage("Failed to parse data extension YAML.");
|
||||
return;
|
||||
}
|
||||
|
||||
await this.postMessage({
|
||||
t: "setExistingYamlData",
|
||||
data,
|
||||
t: "setExistingModeledMethods",
|
||||
existingModeledMethods,
|
||||
});
|
||||
} catch (e: unknown) {
|
||||
void extLogger.log(`Unable to read data extension YAML: ${e}`);
|
||||
|
||||
@@ -15,6 +15,7 @@ import { RepositoriesFilterSortStateWithIds } from "./variant-analysis-filter-so
|
||||
import { ErrorLike } from "./errors";
|
||||
import { DataFlowPaths } from "../variant-analysis/shared/data-flow-paths";
|
||||
import { ExternalApiUsage } from "../data-extensions-editor/external-api-usage";
|
||||
import { ModeledMethod } from "../data-extensions-editor/modeled-method";
|
||||
|
||||
/**
|
||||
* This module contains types and code that are shared between
|
||||
@@ -492,9 +493,9 @@ export interface ShowProgressMessage {
|
||||
message: string;
|
||||
}
|
||||
|
||||
export interface SetExistingYamlDataMessage {
|
||||
t: "setExistingYamlData";
|
||||
data: any;
|
||||
export interface SetExistingModeledMethods {
|
||||
t: "setExistingModeledMethods";
|
||||
existingModeledMethods: Record<string, ModeledMethod>;
|
||||
}
|
||||
|
||||
export interface ApplyDataExtensionYamlMessage {
|
||||
@@ -505,7 +506,7 @@ export interface ApplyDataExtensionYamlMessage {
|
||||
export type ToDataExtensionsEditorMessage =
|
||||
| SetExternalApiUsagesMessage
|
||||
| ShowProgressMessage
|
||||
| SetExistingYamlDataMessage;
|
||||
| SetExistingModeledMethods;
|
||||
|
||||
export type FromDataExtensionsEditorMessage =
|
||||
| ViewLoadedMsg
|
||||
|
||||
@@ -16,10 +16,7 @@ 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,
|
||||
loadDataExtensionYaml,
|
||||
} from "../../data-extensions-editor/yaml";
|
||||
import { createDataExtensionYaml } from "../../data-extensions-editor/yaml";
|
||||
import { calculateSupportedPercentage } from "./supported";
|
||||
|
||||
export const DataExtensionsEditorContainer = styled.div`
|
||||
@@ -61,12 +58,10 @@ export function DataExtensionsEditor(): JSX.Element {
|
||||
case "showProgress":
|
||||
setProgress(msg);
|
||||
break;
|
||||
case "setExistingYamlData":
|
||||
case "setExistingModeledMethods":
|
||||
setModeledMethods((oldModeledMethods) => {
|
||||
const existingModeledMethods = loadDataExtensionYaml(msg.data);
|
||||
|
||||
return {
|
||||
...existingModeledMethods,
|
||||
...msg.existingModeledMethods,
|
||||
...oldModeledMethods,
|
||||
};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user