Introduce type for modeled method with signature
This commit is contained in:
@@ -281,7 +281,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
|
||||
const modeledMethodsByName: Record<string, ModeledMethod> = {};
|
||||
|
||||
for (const result of results) {
|
||||
modeledMethodsByName[result[0]] = result[1];
|
||||
modeledMethodsByName[result.signature] = result.modeledMethod;
|
||||
}
|
||||
|
||||
await this.postMessage({
|
||||
|
||||
@@ -7,7 +7,10 @@ import { extLogger, TeeLogger } from "../common";
|
||||
import { extensiblePredicateDefinitions } from "./yaml";
|
||||
import { ProgressCallback } from "../progress";
|
||||
import { getOnDiskWorkspaceFolders } from "../helpers";
|
||||
import { ModeledMethod, ModeledMethodType } from "./modeled-method";
|
||||
import {
|
||||
ModeledMethodType,
|
||||
ModeledMethodWithSignature,
|
||||
} from "./modeled-method";
|
||||
|
||||
class FlowModelGenerator {
|
||||
constructor(
|
||||
@@ -24,7 +27,7 @@ class FlowModelGenerator {
|
||||
type: Exclude<ModeledMethodType, "none">,
|
||||
queryName: string,
|
||||
queryStep: number,
|
||||
): Promise<Array<[string, ModeledMethod]> | undefined> {
|
||||
): Promise<ModeledMethodWithSignature[] | undefined> {
|
||||
const definition = extensiblePredicateDefinitions[type];
|
||||
|
||||
const query = join(
|
||||
@@ -72,7 +75,7 @@ class FlowModelGenerator {
|
||||
|
||||
const results = decodedResults.tuples;
|
||||
|
||||
return results.map((result): [string, ModeledMethod] => {
|
||||
return results.map((result) => {
|
||||
const row = result[0] as string;
|
||||
|
||||
return definition.readModeledMethod(row.split(";"));
|
||||
@@ -80,9 +83,7 @@ class FlowModelGenerator {
|
||||
}
|
||||
|
||||
async run(
|
||||
onResults: (
|
||||
results: Array<[string, ModeledMethod]>,
|
||||
) => void | Promise<void>,
|
||||
onResults: (results: ModeledMethodWithSignature[]) => void | Promise<void>,
|
||||
) {
|
||||
const summaryResults = await this.getAddsTo(
|
||||
"summary",
|
||||
@@ -124,7 +125,7 @@ export async function generateFlowModel(
|
||||
queryStorageDir: string,
|
||||
qlDir: string,
|
||||
databaseItem: DatabaseItem,
|
||||
onResults: (results: Array<[string, ModeledMethod]>) => void | Promise<void>,
|
||||
onResults: (results: ModeledMethodWithSignature[]) => void | Promise<void>,
|
||||
progress: ProgressCallback,
|
||||
token: CancellationToken,
|
||||
) {
|
||||
|
||||
@@ -11,3 +11,8 @@ export type ModeledMethod = {
|
||||
output: string;
|
||||
kind: string;
|
||||
};
|
||||
|
||||
export type ModeledMethodWithSignature = {
|
||||
signature: string;
|
||||
modeledMethod: ModeledMethod;
|
||||
};
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
import { ExternalApiUsage } from "./external-api-usage";
|
||||
import { ModeledMethod, ModeledMethodType } from "./modeled-method";
|
||||
import {
|
||||
ModeledMethod,
|
||||
ModeledMethodType,
|
||||
ModeledMethodWithSignature,
|
||||
} from "./modeled-method";
|
||||
|
||||
type ExternalApiUsageByType = {
|
||||
externalApiUsage: ExternalApiUsage;
|
||||
@@ -9,7 +13,7 @@ type ExternalApiUsageByType = {
|
||||
type ExtensiblePredicateDefinition = {
|
||||
extensiblePredicate: string;
|
||||
generateMethodDefinition: (method: ExternalApiUsageByType) => any[];
|
||||
readModeledMethod: (row: any[]) => [string, ModeledMethod];
|
||||
readModeledMethod: (row: any[]) => ModeledMethodWithSignature;
|
||||
};
|
||||
|
||||
function readRowToMethod(row: any[]): string {
|
||||
@@ -37,15 +41,15 @@ export const extensiblePredicateDefinitions: Record<
|
||||
method.modeledMethod.kind,
|
||||
"manual",
|
||||
],
|
||||
readModeledMethod: (row) => [
|
||||
readRowToMethod(row),
|
||||
{
|
||||
readModeledMethod: (row) => ({
|
||||
signature: readRowToMethod(row),
|
||||
modeledMethod: {
|
||||
type: "source",
|
||||
input: "",
|
||||
output: row[6],
|
||||
kind: row[7],
|
||||
},
|
||||
],
|
||||
}),
|
||||
},
|
||||
sink: {
|
||||
extensiblePredicate: "sinkModel",
|
||||
@@ -64,15 +68,15 @@ export const extensiblePredicateDefinitions: Record<
|
||||
method.modeledMethod.kind,
|
||||
"manual",
|
||||
],
|
||||
readModeledMethod: (row) => [
|
||||
readRowToMethod(row),
|
||||
{
|
||||
readModeledMethod: (row) => ({
|
||||
signature: readRowToMethod(row),
|
||||
modeledMethod: {
|
||||
type: "sink",
|
||||
input: row[6],
|
||||
output: "",
|
||||
kind: row[7],
|
||||
},
|
||||
],
|
||||
}),
|
||||
},
|
||||
summary: {
|
||||
extensiblePredicate: "summaryModel",
|
||||
@@ -92,15 +96,15 @@ export const extensiblePredicateDefinitions: Record<
|
||||
method.modeledMethod.kind,
|
||||
"manual",
|
||||
],
|
||||
readModeledMethod: (row) => [
|
||||
readRowToMethod(row),
|
||||
{
|
||||
readModeledMethod: (row) => ({
|
||||
signature: readRowToMethod(row),
|
||||
modeledMethod: {
|
||||
type: "summary",
|
||||
input: row[6],
|
||||
output: row[7],
|
||||
kind: row[8],
|
||||
},
|
||||
],
|
||||
}),
|
||||
},
|
||||
neutral: {
|
||||
extensiblePredicate: "neutralModel",
|
||||
@@ -114,15 +118,15 @@ export const extensiblePredicateDefinitions: Record<
|
||||
method.externalApiUsage.methodParameters,
|
||||
"manual",
|
||||
],
|
||||
readModeledMethod: (row) => [
|
||||
`${row[0]}.${row[1]}#${row[2]}${row[3]}`,
|
||||
{
|
||||
readModeledMethod: (row) => ({
|
||||
signature: `${row[0]}.${row[1]}#${row[2]}${row[3]}`,
|
||||
modeledMethod: {
|
||||
type: "neutral",
|
||||
input: "",
|
||||
output: "",
|
||||
kind: "",
|
||||
},
|
||||
],
|
||||
}),
|
||||
},
|
||||
};
|
||||
|
||||
@@ -227,9 +231,9 @@ export function loadDataExtensionYaml(
|
||||
continue;
|
||||
}
|
||||
|
||||
const [apiInfo, modeledMethod] = result;
|
||||
const { signature, modeledMethod } = result;
|
||||
|
||||
modeledMethods[apiInfo] = modeledMethod;
|
||||
modeledMethods[signature] = modeledMethod;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user