Skip to content

Commit d5403ad

Browse files
committed
Introduce type for modeled method with signature
1 parent 0d00e5c commit d5403ad

File tree

4 files changed

+38
-28
lines changed

4 files changed

+38
-28
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
281281
const modeledMethodsByName: Record<string, ModeledMethod> = {};
282282

283283
for (const result of results) {
284-
modeledMethodsByName[result[0]] = result[1];
284+
modeledMethodsByName[result.signature] = result.modeledMethod;
285285
}
286286

287287
await this.postMessage({

extensions/ql-vscode/src/data-extensions-editor/generate-flow-model.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ import { extLogger, TeeLogger } from "../common";
77
import { extensiblePredicateDefinitions } from "./yaml";
88
import { ProgressCallback } from "../progress";
99
import { getOnDiskWorkspaceFolders } from "../helpers";
10-
import { ModeledMethod, ModeledMethodType } from "./modeled-method";
10+
import {
11+
ModeledMethodType,
12+
ModeledMethodWithSignature,
13+
} from "./modeled-method";
1114

1215
class FlowModelGenerator {
1316
constructor(
@@ -24,7 +27,7 @@ class FlowModelGenerator {
2427
type: Exclude<ModeledMethodType, "none">,
2528
queryName: string,
2629
queryStep: number,
27-
): Promise<Array<[string, ModeledMethod]> | undefined> {
30+
): Promise<ModeledMethodWithSignature[] | undefined> {
2831
const definition = extensiblePredicateDefinitions[type];
2932

3033
const query = join(
@@ -72,17 +75,15 @@ class FlowModelGenerator {
7275

7376
const results = decodedResults.tuples;
7477

75-
return results.map((result): [string, ModeledMethod] => {
78+
return results.map((result) => {
7679
const row = result[0] as string;
7780

7881
return definition.readModeledMethod(row.split(";"));
7982
});
8083
}
8184

8285
async run(
83-
onResults: (
84-
results: Array<[string, ModeledMethod]>,
85-
) => void | Promise<void>,
86+
onResults: (results: ModeledMethodWithSignature[]) => void | Promise<void>,
8687
) {
8788
const summaryResults = await this.getAddsTo(
8889
"summary",
@@ -124,7 +125,7 @@ export async function generateFlowModel(
124125
queryStorageDir: string,
125126
qlDir: string,
126127
databaseItem: DatabaseItem,
127-
onResults: (results: Array<[string, ModeledMethod]>) => void | Promise<void>,
128+
onResults: (results: ModeledMethodWithSignature[]) => void | Promise<void>,
128129
progress: ProgressCallback,
129130
token: CancellationToken,
130131
) {

extensions/ql-vscode/src/data-extensions-editor/modeled-method.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,8 @@ export type ModeledMethod = {
1111
output: string;
1212
kind: string;
1313
};
14+
15+
export type ModeledMethodWithSignature = {
16+
signature: string;
17+
modeledMethod: ModeledMethod;
18+
};

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

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
import { ExternalApiUsage } from "./external-api-usage";
2-
import { ModeledMethod, ModeledMethodType } from "./modeled-method";
2+
import {
3+
ModeledMethod,
4+
ModeledMethodType,
5+
ModeledMethodWithSignature,
6+
} from "./modeled-method";
37

48
type ExternalApiUsageByType = {
59
externalApiUsage: ExternalApiUsage;
@@ -9,7 +13,7 @@ type ExternalApiUsageByType = {
913
type ExtensiblePredicateDefinition = {
1014
extensiblePredicate: string;
1115
generateMethodDefinition: (method: ExternalApiUsageByType) => any[];
12-
readModeledMethod: (row: any[]) => [string, ModeledMethod];
16+
readModeledMethod: (row: any[]) => ModeledMethodWithSignature;
1317
};
1418

1519
function readRowToMethod(row: any[]): string {
@@ -37,15 +41,15 @@ export const extensiblePredicateDefinitions: Record<
3741
method.modeledMethod.kind,
3842
"manual",
3943
],
40-
readModeledMethod: (row) => [
41-
readRowToMethod(row),
42-
{
44+
readModeledMethod: (row) => ({
45+
signature: readRowToMethod(row),
46+
modeledMethod: {
4347
type: "source",
4448
input: "",
4549
output: row[6],
4650
kind: row[7],
4751
},
48-
],
52+
}),
4953
},
5054
sink: {
5155
extensiblePredicate: "sinkModel",
@@ -64,15 +68,15 @@ export const extensiblePredicateDefinitions: Record<
6468
method.modeledMethod.kind,
6569
"manual",
6670
],
67-
readModeledMethod: (row) => [
68-
readRowToMethod(row),
69-
{
71+
readModeledMethod: (row) => ({
72+
signature: readRowToMethod(row),
73+
modeledMethod: {
7074
type: "sink",
7175
input: row[6],
7276
output: "",
7377
kind: row[7],
7478
},
75-
],
79+
}),
7680
},
7781
summary: {
7882
extensiblePredicate: "summaryModel",
@@ -92,15 +96,15 @@ export const extensiblePredicateDefinitions: Record<
9296
method.modeledMethod.kind,
9397
"manual",
9498
],
95-
readModeledMethod: (row) => [
96-
readRowToMethod(row),
97-
{
99+
readModeledMethod: (row) => ({
100+
signature: readRowToMethod(row),
101+
modeledMethod: {
98102
type: "summary",
99103
input: row[6],
100104
output: row[7],
101105
kind: row[8],
102106
},
103-
],
107+
}),
104108
},
105109
neutral: {
106110
extensiblePredicate: "neutralModel",
@@ -114,15 +118,15 @@ export const extensiblePredicateDefinitions: Record<
114118
method.externalApiUsage.methodParameters,
115119
"manual",
116120
],
117-
readModeledMethod: (row) => [
118-
`${row[0]}.${row[1]}#${row[2]}${row[3]}`,
119-
{
121+
readModeledMethod: (row) => ({
122+
signature: `${row[0]}.${row[1]}#${row[2]}${row[3]}`,
123+
modeledMethod: {
120124
type: "neutral",
121125
input: "",
122126
output: "",
123127
kind: "",
124128
},
125-
],
129+
}),
126130
},
127131
};
128132

@@ -227,9 +231,9 @@ export function loadDataExtensionYaml(
227231
continue;
228232
}
229233

230-
const [apiInfo, modeledMethod] = result;
234+
const { signature, modeledMethod } = result;
231235

232-
modeledMethods[apiInfo] = modeledMethod;
236+
modeledMethods[signature] = modeledMethod;
233237
}
234238
}
235239

0 commit comments

Comments
 (0)