Skip to content

Commit 13212ef

Browse files
author
Thomasr
committed
backward compatibility when no version is selected
1 parent 998625e commit 13212ef

File tree

25 files changed

+77
-65
lines changed

25 files changed

+77
-65
lines changed

server/node-service/src/common/util.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,15 @@ export function specsToOptions(specs: any) {
9494
return Object.keys(specs).map(k => ({value: k, label: k}));
9595
}
9696

97+
export function version2spec(specs: any, version: any) {
98+
if(version == undefined || version == "") {
99+
const keys = Object.keys(specs);
100+
if(keys.length == 0) return;
101+
return specs[keys[0]];
102+
}
103+
return specs[version];
104+
}
105+
97106
function genTagFromFileName(name: string) {
98107
const fileName = name.replace(/\.yaml|twilio_|\.json/g, "");
99108
const parts = fileName.split("_");

server/node-service/src/plugins/asana/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { readYaml, specsToOptions } from "../../common/util";
1+
import { readYaml, specsToOptions, version2spec } from "../../common/util";
22
import _ from "lodash";
33
import path from "path";
44
import { OpenAPIV3, OpenAPI } from "openapi-types";
@@ -52,7 +52,7 @@ const asanaPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
5252
category: "api",
5353
dataSourceConfig,
5454
queryConfig: async (data) => {
55-
const { actions, categories } = await parseOpenApi(specs[data.specVersion as keyof typeof specs] as OpenAPI.Document, parseOptions);
55+
const { actions, categories } = await parseOpenApi(version2spec(specs, data.specVersion) as OpenAPI.Document, parseOptions);
5656
return {
5757
type: "query",
5858
label: "Action",
@@ -70,7 +70,7 @@ const asanaPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
7070
dynamicParamsConfig: dataSourceConfig,
7171
specVersion: dataSourceConfig.specVersion,
7272
};
73-
return runOpenApi(actionData, runApiDsConfig, specs[dataSourceConfig.specVersion as keyof typeof specs] as OpenAPIV3.Document);
73+
return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion) as OpenAPIV3.Document);
7474
},
7575
};
7676

server/node-service/src/plugins/circleCi/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { runOpenApi } from "../openApi";
55
import { parseOpenApi, ParseOpenApiOptions } from "../openApi/parse";
66

77
import spec from "./circleCi.spec.json";
8-
import { specsToOptions } from "../../common/util";
8+
import { specsToOptions, version2spec } from "../../common/util";
99
const specs = {
1010
"v1.0": spec,
1111
}
@@ -47,7 +47,7 @@ const circleCiPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
4747
dataSourceConfig,
4848
queryConfig: async (data) => {
4949
const { actions, categories } = await parseOpenApi(
50-
specs[data.specVersion as keyof typeof specs] as unknown as OpenAPI.Document,
50+
version2spec(specs, data.specVersion) as unknown as OpenAPI.Document,
5151
parseOptions
5252
);
5353
return {
@@ -67,7 +67,7 @@ const circleCiPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
6767
dynamicParamsConfig: dataSourceConfig,
6868
specVersion: dataSourceConfig.specVersion,
6969
};
70-
return runOpenApi(actionData, runApiDsConfig, specs[dataSourceConfig.specVersion as keyof typeof specs] as unknown as OpenAPIV3.Document);
70+
return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion) as unknown as OpenAPIV3.Document);
7171
},
7272
};
7373

server/node-service/src/plugins/cloudinary/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { readYaml, specsToOptions } from "../../common/util";
1+
import { readYaml, specsToOptions, version2spec } from "../../common/util";
22
import _ from "lodash";
33
import path from "path";
44
import { OpenAPI } from "openapi-types";
@@ -67,7 +67,7 @@ const cloudinaryPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
6767
dataSourceConfig,
6868
queryConfig: async (data) => {
6969
if (!queryConfig[data.specVersion as keyof typeof queryConfig]) {
70-
const { actions, categories } = await parseMultiOpenApi(specs[data.specVersion as keyof typeof specs], parseOptions);
70+
const { actions, categories } = await parseMultiOpenApi(version2spec(specs, data.specVersion), parseOptions);
7171
queryConfig[data.specVersion as keyof typeof queryConfig] = {
7272
type: "query",
7373
label: "Action",
@@ -87,7 +87,7 @@ const cloudinaryPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
8787
dynamicParamsConfig: dataSourceConfig,
8888
specVersion: dataSourceConfig.specVersion,
8989
};
90-
return runOpenApi(actionData, runApiDsConfig, specs[dataSourceConfig.specVersion as keyof typeof specs]);
90+
return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion));
9191
},
9292
};
9393

server/node-service/src/plugins/couchdb/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { ConfigToType, DataSourcePlugin } from "lowcoder-sdk/dataSource";
44
import { runOpenApi } from "../openApi";
55
import { defaultParseOpenApiOptions, parseOpenApi, ParseOpenApiOptions } from "../openApi/parse";
66
import spec from "./CouchDB-3.1.1-resolved.json";
7-
import { specsToOptions } from "../../common/util";
7+
import { specsToOptions, version2spec } from "../../common/util";
88
const specs = {
99
"v1.0": spec,
1010
}
@@ -71,7 +71,7 @@ const couchdbPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
7171
category: "database",
7272
dataSourceConfig,
7373
queryConfig: async (data) => {
74-
const { actions, categories } = await parseOpenApi(specs[data.specVersion as keyof typeof specs] as OpenAPI.Document, parseOptions);
74+
const { actions, categories } = await parseOpenApi(version2spec(specs, data.specVersion) as OpenAPI.Document, parseOptions);
7575
return {
7676
type: "query",
7777
label: "Operation",
@@ -90,7 +90,7 @@ const couchdbPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
9090
dynamicParamsConfig: otherDataSourceConfig,
9191
specVersion: dataSourceConfig.specVersion
9292
};
93-
return runOpenApi(actionData, runApiDsConfig, specs[dataSourceConfig.specVersion as keyof typeof specs] as OpenAPIV2.Document);
93+
return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion) as OpenAPIV2.Document);
9494
},
9595
};
9696

server/node-service/src/plugins/datadog/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { readYaml, specsToOptions } from "../../common/util";
1+
import { readYaml, specsToOptions, version2spec } from "../../common/util";
22
import _ from "lodash";
33
import path from "path";
44
import { OpenAPIV3, OpenAPI } from "openapi-types";
@@ -59,7 +59,7 @@ const datadogPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
5959
category: "api",
6060
dataSourceConfig,
6161
queryConfig: async (data) => {
62-
const { actions, categories } = await parseOpenApi(specs[data.specVersion as keyof typeof specs], parseOptions);
62+
const { actions, categories } = await parseOpenApi(version2spec(specs, data.specVersion), parseOptions);
6363
return {
6464
type: "query",
6565
label: "Action",
@@ -77,7 +77,7 @@ const datadogPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
7777
dynamicParamsConfig: dataSourceConfig,
7878
specVersion: dataSourceConfig.specVersion,
7979
};
80-
return runOpenApi(actionData, runApiDsConfig, specs[dataSourceConfig.specVersion as keyof typeof specs] as OpenAPIV3.Document);
80+
return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion) as OpenAPIV3.Document);
8181
},
8282
};
8383

server/node-service/src/plugins/did/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { dirToSpecList, specsToOptions } from "../../common/util";
1+
import { dirToSpecList, specsToOptions, version2spec } from "../../common/util";
22
import _ from "lodash";
33
import path from "path";
44
import { OpenAPI } from "openapi-types";
@@ -61,7 +61,7 @@ const didPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
6161
dataSourceConfig,
6262
queryConfig: async (data) => {
6363
if (!queryConfig[data.specVersion as keyof typeof queryConfig]) {
64-
const { actions, categories } = await parseMultiOpenApi(specs[data.specVersion as keyof typeof specs], parseOptions);
64+
const { actions, categories } = await parseMultiOpenApi(version2spec(specs, data.specVersion), parseOptions);
6565
queryConfig[data.specVersion as keyof typeof queryConfig] = {
6666
type: "query",
6767
label: "Action",
@@ -81,7 +81,7 @@ const didPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
8181
dynamicParamsConfig: dataSourceConfig,
8282
specVersion: dataSourceConfig.specVersion,
8383
};
84-
return runOpenApi(actionData, runApiDsConfig, specs[dataSourceConfig.specVersion as keyof typeof specs]);
84+
return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion));
8585
},
8686
};
8787

server/node-service/src/plugins/dynamodb/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { DataSourcePlugin } from "lowcoder-sdk/dataSource";
22
import dataSourceConfig, { DataSourceDataType } from "./dataSourceConfig";
33
import queryConfig, { ActionDataType } from "./queryConfig";
44
import { runDynamoDbQuery } from "./run";
5+
import { version2spec } from "../../common/util";
56

67
const specs = {
78
"v1.0": queryConfig
@@ -14,7 +15,7 @@ const dynamoDBPlugin: DataSourcePlugin<ActionDataType, DataSourceDataType> = {
1415
icon: "dynamodb.svg",
1516
dataSourceConfig,
1617
queryConfig: async (data) => {
17-
return specs[data.specVersion as keyof typeof specs]
18+
return version2spec(specs, data.specVersion);
1819
},
1920
run: async function (actionData, dataSourceConfig): Promise<any> {
2021
return runDynamoDbQuery(actionData, dataSourceConfig);

server/node-service/src/plugins/firebase/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { DataSourcePlugin } from "lowcoder-sdk/dataSource";
22
import dataSourceConfig, { DataSourceDataType } from "./dataSourceConfig";
33
import queryConfig, { ActionDataType } from "./queryConfig";
44
import { runFirebasePlugin } from "./run";
5+
import { version2spec } from "../../common/util";
56

67
const specs = {
78
"v1.0": queryConfig
@@ -13,7 +14,7 @@ const firebasePlugin: DataSourcePlugin<ActionDataType, DataSourceDataType> = {
1314
name: "Firebase",
1415
category: "api",
1516
queryConfig: async (data) => {
16-
return specs[data.specVersion as keyof typeof specs]
17+
return version2spec(specs, data.specVersion);
1718
},
1819
dataSourceConfig,
1920
run: function (actionData, dataSourceConfig): Promise<any> {

server/node-service/src/plugins/front/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { runOpenApi } from "../openApi";
55
import { parseOpenApi, ParseOpenApiOptions } from "../openApi/parse";
66

77
import spec from "./front.spec.json";
8-
import { specsToOptions } from "../../common/util";
8+
import { specsToOptions, version2spec } from "../../common/util";
99
const specs = {
1010
"v1.0": spec,
1111
}
@@ -47,7 +47,7 @@ const frontPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
4747
category: "api",
4848
dataSourceConfig,
4949
queryConfig: async (data) => {
50-
const { actions, categories } = await parseOpenApi(specs[data.specVersion as keyof typeof specs] as OpenAPI.Document, parseOptions);
50+
const { actions, categories } = await parseOpenApi(version2spec(specs, data.specVersion) as OpenAPI.Document, parseOptions);
5151
return {
5252
type: "query",
5353
label: "Action",
@@ -65,7 +65,7 @@ const frontPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
6565
dynamicParamsConfig: dataSourceConfig,
6666
specVersion: dataSourceConfig.specVersion,
6767
};
68-
return runOpenApi(actionData, runApiDsConfig, specs[dataSourceConfig.specVersion as keyof typeof specs] as OpenAPIV3.Document);
68+
return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion) as OpenAPIV3.Document);
6969
},
7070
};
7171

server/node-service/src/plugins/github/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { readYaml, specsToOptions } from "../../common/util";
1+
import { readYaml, specsToOptions, version2spec } from "../../common/util";
22
import _ from "lodash";
33
import path from "path";
44
import { OpenAPIV3, OpenAPI } from "openapi-types";
@@ -57,7 +57,7 @@ const gitHubPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
5757
category: "api",
5858
dataSourceConfig,
5959
queryConfig: async (data) => {
60-
const { actions, categories } = await parseOpenApi(specs[data.specVersion as keyof typeof specs], parseOptions);
60+
const { actions, categories } = await parseOpenApi(version2spec(specs, data.specVersion), parseOptions);
6161
return {
6262
type: "query",
6363
label: "Action",
@@ -75,7 +75,7 @@ const gitHubPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
7575
dynamicParamsConfig: dataSourceConfig,
7676
specVersion: dataSourceConfig.specVersion,
7777
};
78-
return runOpenApi(actionData, runApiDsConfig, specs[dataSourceConfig.specVersion as keyof typeof specs] as OpenAPIV3.Document, undefined, await deRefedSpec);
78+
return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion) as OpenAPIV3.Document, undefined, await deRefedSpec);
7979
},
8080
};
8181

server/node-service/src/plugins/googleCloudStorage/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import queryConfig, { ActionDataType } from "./queryConfig";
66
import { DataSourceDataType } from "./dataSourceConfig";
77
import run, { validateDataSourceConfig } from "./run";
88
import { dataSourceConfig } from "./dataSourceConfig";
9+
import { version2spec } from "../../common/util";
910

1011
const specs = {
1112
"v1.0": queryConfig
@@ -17,7 +18,7 @@ const gcsPlugin = {
1718
category: "api",
1819
dataSourceConfig,
1920
queryConfig: async (data: any) => {
20-
return specs[data.specVersion as keyof typeof specs];
21+
return version2spec(specs, data.specVersion);
2122
},
2223

2324
validateDataSourceConfig: async (dataSourceConfig: DataSourceDataType) => {

server/node-service/src/plugins/huggingFaceEndpoint/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { runOpenApi } from "../openApi";
55
import { parseOpenApi, ParseOpenApiOptions } from "../openApi/parse";
66

77
import spec from "./huggingFace.spec.json";
8-
import { specsToOptions } from "../../common/util";
8+
import { specsToOptions, version2spec } from "../../common/util";
99
const specs = {
1010
"v1.0": spec,
1111
}
@@ -56,7 +56,7 @@ const huggingFacePlugin: DataSourcePlugin<any, DataSourceConfigType> = {
5656
dataSourceConfig,
5757
queryConfig: async (data) => {
5858
const { actions, categories } = await parseOpenApi(
59-
specs[data.specVersion as keyof typeof specs] as unknown as OpenAPI.Document,
59+
version2spec(specs, data.specVersion) as unknown as OpenAPI.Document,
6060
parseOptions
6161
);
6262
return {
@@ -76,7 +76,7 @@ const huggingFacePlugin: DataSourcePlugin<any, DataSourceConfigType> = {
7676
dynamicParamsConfig: dataSourceConfig,
7777
specVersion: dataSourceConfig.specVersion,
7878
};
79-
return runOpenApi(actionData, runApiDsConfig, specs[dataSourceConfig.specVersion as keyof typeof specs] as unknown as OpenAPIV3.Document);
79+
return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion) as unknown as OpenAPIV3.Document);
8080
},
8181
};
8282

server/node-service/src/plugins/huggingFaceInference/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import _ from "lodash";
22
import { ConfigToType, DataSourcePlugin } from "lowcoder-sdk/dataSource";
3-
import { specsToOptions } from "../../common/util";
3+
import { specsToOptions, version2spec } from "../../common/util";
44

55
const queryConfig = {
66
type: "query",
@@ -64,7 +64,7 @@ const huggingFaceInferencePlugin: DataSourcePlugin<ActionConfigType, DataSourceC
6464
category: "api",
6565
dataSourceConfig,
6666
queryConfig: async (data) => {
67-
return specs[data.specVersion as keyof typeof specs];
67+
return version2spec(specs, data.specVersion);
6868
},
6969
run: async (actionData, dataSourceConfig) => {
7070
const response = await fetch(

server/node-service/src/plugins/jira/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { ConfigToType, DataSourcePlugin, QueryConfig } from "lowcoder-sdk/dataSo
55
import path from "path";
66
import { runOpenApi } from "../openApi";
77
import { parseOpenApi, ParseOpenApiOptions } from "../openApi/parse";
8-
import { specsToOptions } from "../../common/util";
8+
import { specsToOptions, version2spec } from "../../common/util";
99

1010
const specJson = readFileSync(path.join(__dirname, "./jira.spec.json")).toString();
1111
const specs = {
@@ -73,7 +73,7 @@ const jiraPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
7373
dataSourceConfig,
7474
queryConfig: async (data) => {
7575
if (!queryConfig[data.specVersion as keyof typeof queryConfig]) {
76-
const { actions, categories } = await parseOpenApi(JSON.parse(specs[data.specVersion as keyof typeof specs]), parseOptions);
76+
const { actions, categories } = await parseOpenApi(JSON.parse(version2spec(specs, data.specVersion)), parseOptions);
7777
queryConfig[data.specVersion as keyof typeof queryConfig] = {
7878
type: "query",
7979
label: "Action",
@@ -87,7 +87,7 @@ const jiraPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
8787
return queryConfig[data.specVersion as keyof typeof queryConfig];
8888
},
8989
run: function (actionData, dataSourceConfig): Promise<any> {
90-
const spec = JSON.parse(specs[dataSourceConfig.specVersion as keyof typeof specs]);
90+
const spec = JSON.parse(version2spec(specs, dataSourceConfig.specVersion));
9191
const runApiDsConfig = {
9292
url: "",
9393
serverURL: dataSourceConfig.serverUrl,

server/node-service/src/plugins/lowcoder/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { readYaml, specsToOptions } from "../../common/util";
1+
import { readYaml, specsToOptions, version2spec } from "../../common/util";
22
import _ from "lodash";
33
import path from "path";
44
import { OpenAPIV3, OpenAPI } from "openapi-types";
@@ -60,7 +60,7 @@ const lowcoderPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
6060
category: "api",
6161
dataSourceConfig,
6262
queryConfig: async (data) => {
63-
const { actions, categories } = await parseOpenApi(specs[data.specVersion as keyof typeof specs] as unknown as OpenAPI.Document, parseOptions);
63+
const { actions, categories } = await parseOpenApi(version2spec(specs, data.specVersion) as unknown as OpenAPI.Document, parseOptions);
6464
return {
6565
type: "query",
6666
label: "Action",
@@ -80,7 +80,7 @@ const lowcoderPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
8080
dynamicParamsConfig: otherDataSourceConfig,
8181
specVersion: dataSourceConfig.specVersion,
8282
};
83-
return runOpenApi(actionData, runApiDsConfig, specs[dataSourceConfig.specVersion as keyof typeof specs] as OpenAPIV3.Document);
83+
return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion) as OpenAPIV3.Document);
8484
},
8585
};
8686

server/node-service/src/plugins/n8n/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { ConfigToType, DataSourcePlugin } from "lowcoder-sdk/dataSource";
44
import { runOpenApi } from "../openApi";
55
import { defaultParseOpenApiOptions, parseOpenApi, ParseOpenApiOptions } from "../openApi/parse";
66
import spec from "./spec.json";
7-
import { specsToOptions } from "../../common/util";
7+
import { specsToOptions, version2spec } from "../../common/util";
88
const specs = {
99
"v1.0": spec,
1010
}
@@ -70,7 +70,7 @@ const n8nPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
7070
category: "api",
7171
dataSourceConfig,
7272
queryConfig: async (data) => {
73-
const { actions, categories } = await parseOpenApi(specs[data.specVersion as keyof typeof specs] as OpenAPI.Document, parseOptions);
73+
const { actions, categories } = await parseOpenApi(version2spec(specs, data.specVersion) as OpenAPI.Document, parseOptions);
7474
return {
7575
type: "query",
7676
label: "Operation",
@@ -91,7 +91,7 @@ const n8nPlugin: DataSourcePlugin<any, DataSourceConfigType> = {
9191
},
9292
specVersion: dataSourceConfig.specVersion
9393
};
94-
return runOpenApi(actionData, runApiDsConfig, specs[dataSourceConfig.specVersion as keyof typeof specs] as OpenAPIV3.Document);
94+
return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion) as OpenAPIV3.Document);
9595
},
9696
};
9797

0 commit comments

Comments
 (0)