Skip to content

Commit 370872d

Browse files
Split addModeledMethods into that and loadModeledMethods
1 parent 930103b commit 370872d

File tree

3 files changed

+37
-48
lines changed

3 files changed

+37
-48
lines changed

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

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -509,21 +509,14 @@ export interface ShowProgressMessage {
509509
message: string;
510510
}
511511

512+
export interface LoadModeledMethodsMessage {
513+
t: "loadModeledMethods";
514+
modeledMethods: Record<string, ModeledMethod>;
515+
}
516+
512517
export interface AddModeledMethodsMessage {
513518
t: "addModeledMethods";
514519
modeledMethods: Record<string, ModeledMethod>;
515-
/**
516-
* Are these modeled methods newly generated in some way and not yet
517-
* saved in any model file, or are they loaded from an existing model file.
518-
*/
519-
unsaved: boolean;
520-
/**
521-
* If true, then any existing modeled methods set to "none" will be
522-
* overwritten by the new modeled methods. Otherwise, the "none" modeled
523-
* methods will not be overwritten, even if the new modeled methods
524-
* contain a better model.
525-
*/
526-
overrideNone?: boolean;
527520
}
528521

529522
export interface SwitchModeMessage {
@@ -564,6 +557,7 @@ export type ToDataExtensionsEditorMessage =
564557
| SetExtensionPackStateMessage
565558
| SetExternalApiUsagesMessage
566559
| ShowProgressMessage
560+
| LoadModeledMethodsMessage
567561
| AddModeledMethodsMessage;
568562

569563
export type FromDataExtensionsEditorMessage =

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,9 +257,8 @@ export class DataExtensionsEditorView extends AbstractWebview<
257257
}
258258

259259
await this.postMessage({
260-
t: "addModeledMethods",
260+
t: "loadModeledMethods",
261261
modeledMethods: existingModeledMethods,
262-
unsaved: false,
263262
});
264263
} catch (e: unknown) {
265264
void showAndLogErrorMessage(
@@ -388,8 +387,6 @@ export class DataExtensionsEditorView extends AbstractWebview<
388387
await this.postMessage({
389388
t: "addModeledMethods",
390389
modeledMethods: modeledMethodsByName,
391-
unsaved: true,
392-
overrideNone: true,
393390
});
394391
},
395392
progress: (update) => this.showProgress(update),
@@ -483,8 +480,6 @@ export class DataExtensionsEditorView extends AbstractWebview<
483480
await this.postMessage({
484481
t: "addModeledMethods",
485482
modeledMethods: predictedModeledMethods,
486-
unsaved: true,
487-
overrideNone: true,
488483
});
489484

490485
await this.clearProgress();

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

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -93,38 +93,36 @@ export function DataExtensionsEditor({
9393
case "showProgress":
9494
setProgress(msg);
9595
break;
96-
case "addModeledMethods":
96+
case "loadModeledMethods":
9797
setModeledMethods((oldModeledMethods) => {
98-
const filteredOldModeledMethods = msg.overrideNone
99-
? Object.fromEntries(
100-
Object.entries(oldModeledMethods).filter(
101-
([, value]) => value.type !== "none",
102-
),
103-
)
104-
: oldModeledMethods;
105-
10698
return {
10799
...msg.modeledMethods,
108-
...filteredOldModeledMethods,
100+
...oldModeledMethods,
109101
};
110102
});
111-
if (msg.unsaved) {
112-
const affectedExternalApiUsages =
113-
externalApiUsagesForModeledMethods(
114-
msg.modeledMethods,
115-
externalApiUsages,
116-
);
117-
const affectedModelNames = Object.keys(
118-
groupMethods(
119-
affectedExternalApiUsages,
120-
viewState?.mode ?? Mode.Application,
103+
break;
104+
case "addModeledMethods":
105+
setModeledMethods((oldModeledMethods) => {
106+
return {
107+
...msg.modeledMethods,
108+
...Object.fromEntries(
109+
Object.entries(oldModeledMethods).filter(
110+
([, value]) => value.type !== "none",
111+
),
121112
),
122-
);
123-
setUnsavedModels(
124-
(oldUnsavedModels) =>
125-
new Set([...oldUnsavedModels, ...affectedModelNames]),
126-
);
127-
}
113+
};
114+
});
115+
setUnsavedModels(
116+
(oldUnsavedModels) =>
117+
new Set([
118+
...oldUnsavedModels,
119+
...modelsAffectedByNewModeledMethods(
120+
msg.modeledMethods,
121+
externalApiUsages,
122+
viewState?.mode ?? Mode.Application,
123+
),
124+
]),
125+
);
128126
break;
129127
default:
130128
assertNever(msg);
@@ -328,12 +326,14 @@ export function DataExtensionsEditor({
328326
);
329327
}
330328

331-
function externalApiUsagesForModeledMethods(
329+
function modelsAffectedByNewModeledMethods(
332330
modeledMethods: Record<string, ModeledMethod>,
333331
externalApiUsages: ExternalApiUsage[],
334-
): ExternalApiUsage[] {
332+
mode: Mode,
333+
): string[] {
335334
const signatures = new Set(Object.keys(modeledMethods));
336-
return externalApiUsages.filter((externalApiUsage) =>
337-
signatures.has(externalApiUsage.signature),
335+
const affectedExternalApiUsages = externalApiUsages.filter(
336+
(externalApiUsage) => signatures.has(externalApiUsage.signature),
338337
);
338+
return Object.keys(groupMethods(affectedExternalApiUsages, mode));
339339
}

0 commit comments

Comments
 (0)