Skip to content

Commit ed2e194

Browse files
committed
feat: added id field to every constructed type
1 parent 39bffe3 commit ed2e194

File tree

4 files changed

+28
-10
lines changed

4 files changed

+28
-10
lines changed

reader/ts/src/mapper/dataTypeMapper.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,14 @@ import {
55
DataTypeRulesInputTypeConfig,
66
DataTypeRulesInputTypesConfig,
77
DataTypeRulesItemOfCollectionConfig, DataTypeRulesNumberRangeConfig,
8-
DataTypeRulesParentTypeConfig, DataTypeRulesRegexConfig, GenericCombinationStrategy,
9-
TranslationConnection
8+
DataTypeRulesParentTypeConfig, DataTypeRulesRegexConfig,
109
} from "@code0-tech/sagittarius-graphql-types";
11-
import {Translation} from "@code0-tech/tucana/pb/shared.translation_pb.ts";
1210
import {
1311
DataTypeIdentifier as TucanaDataTypeIdentifier,
1412
DefinitionDataType_Variant, DefinitionDataTypeRule
1513
} from "@code0-tech/tucana/pb/shared.data_type_pb.ts"
1614
import {GenericMapper as TucanaGenericMapper} from "@code0-tech/tucana/pb/shared.data_type_pb.ts"
17-
import {ConstructedDataTypes} from "../parser.js";
15+
import {ConstructedDataTypes, getID} from "../parser.js";
1816
import {getTranslationConnection} from "./translation.js";
1917

2018
export enum GenericMapper_GenericCombinationStrategy {
@@ -57,7 +55,8 @@ function getDataType(identifier: string, constructedDataTypes: ConstructedDataTy
5755
console.error("Skipping Identifier because it can't be identified:" + identifier)
5856
return null
5957
}
60-
const constructed = {
58+
const constructed: DataType = {
59+
id: `gid://sagittarius/DataType/${getID(constructedDataTypes)}`,
6160
genericKeys: tucanaDataType.genericKeys,
6261
identifier: tucanaDataType.identifier,
6362
name: getTranslationConnection(tucanaDataType.name),
@@ -204,7 +203,9 @@ function getDataTypeIdentifier(identifier: TucanaDataTypeIdentifier | undefined,
204203
switch (identifier.type.oneofKind) {
205204
case "genericType": {
206205
return {
206+
id: `gid://sagittarius/DataTypeIdentifier/${getID(constructedDataTypes)}`,
207207
genericType: {
208+
id: `gid://sagittarius/GenericType/${getID(constructedDataTypes)}`,
208209
dataType: getDataType(identifier.type.genericType.dataTypeIdentifier, constructedDataTypes),
209210
genericMappers: identifier.type.genericType.genericMappers.map((mapper: TucanaGenericMapper) => {
210211
return {
@@ -220,15 +221,16 @@ function getDataTypeIdentifier(identifier: TucanaDataTypeIdentifier | undefined,
220221
default:
221222
throw new Error("GenericCombinationStrategy was Unknown");
222223
}
223-
224224
return {
225+
id: `gid://sagittarius/GenericCombinationStrategy/${getID(constructedDataTypes)}`,
225226
type: type
226227
}
227228
}),
228229
sources: mapper.source.map(id =>
229230
getDataTypeIdentifier(id, constructedDataTypes)
230231
).filter(id => id != null),
231232
target: mapper.target,
233+
id: `gid://sagittarius/GenericMapper/${getID(constructedDataTypes)}`,
232234
}
233235
}),
234236
}
@@ -237,12 +239,14 @@ function getDataTypeIdentifier(identifier: TucanaDataTypeIdentifier | undefined,
237239

238240
case "dataTypeIdentifier": {
239241
return {
242+
id: `gid://sagittarius/DataTypeIdentifier/${getID(constructedDataTypes)}`,
240243
dataType: getDataType(identifier.type.dataTypeIdentifier, constructedDataTypes)
241244
}
242245
}
243246

244247
case "genericKey": {
245248
return {
249+
id: `gid://sagittarius/DataTypeIdentifier/${getID(constructedDataTypes)}`,
246250
genericKey: identifier.type.genericKey,
247251
}
248252
}

reader/ts/src/mapper/flowTypeMapper.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import {FlowType as TucanaFlowType, FlowTypeSetting as TucanaFlowTypeSetting} from "@code0-tech/tucana/pb/shared.flow_definition_pb.ts"
22
import {FlowType, FlowTypeSetting} from "@code0-tech/sagittarius-graphql-types";
33
import {getDataType} from "./dataTypeMapper.ts";
4-
import {ConstructedDataTypes} from "../parser.ts";
4+
import {ConstructedDataTypes, getID} from "../parser.ts";
55
import {getTranslationConnection} from "./translation.js";
66

77
function mapFlowType(flowType: TucanaFlowType, constructed: ConstructedDataTypes): FlowType | null {
88
return {
9+
id: `gid://sagittarius/TypesFlowType/${getID(constructed)}`,
910
identifier: flowType.identifier,
1011
inputType: getDataType(flowType.inputTypeIdentifier!!, constructed),
1112
returnType: getDataType(flowType.returnTypeIdentifier!!, constructed),
@@ -18,13 +19,16 @@ function mapFlowType(flowType: TucanaFlowType, constructed: ConstructedDataTypes
1819

1920
function createFlowTypeSetting(settings: TucanaFlowTypeSetting[], constructed: ConstructedDataTypes): FlowTypeSetting[] {
2021
return settings.map(setting => {
21-
return {
22+
const flowSetting: FlowTypeSetting = {
23+
id: `gid://sagittarius/FlowTypeSetting/${getID(constructed)}`,
2224
names: getTranslationConnection(setting.name),
2325
descriptions: getTranslationConnection(setting.description),
2426
dataType: getDataType(setting.dataTypeIdentifier, constructed),
2527
identifier: setting.identifier,
2628
unique: setting.unique
2729
}
30+
31+
return flowSetting;
2832
})
2933
}
3034

reader/ts/src/mapper/functionMapper.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ import {
44
RuntimeParameterDefinition
55
} from "@code0-tech/tucana/pb/shared.runtime_function_pb.ts";
66
import {getDataTypeIdentifier} from "./dataTypeMapper.ts";
7-
import {ConstructedDataTypes} from "../parser.ts";
7+
import {ConstructedDataTypes, getID} from "../parser.ts";
88
import {getTranslationConnection} from "./translation.js";
99

1010
function mapFunction(func: TucanaFunction, constructed: ConstructedDataTypes): FunctionDefinition | null {
1111
return {
12+
id: `gid://sagittarius/FunctionDefinition/${getID(constructed)}`,
1213
genericKeys: func.genericKeys,
1314
names: getTranslationConnection(func.name),
1415
descriptions: getTranslationConnection(func.description),
@@ -25,6 +26,7 @@ function getParameterDefinitionConnection(def: RuntimeParameterDefinition[], con
2526
count: def.length,
2627
nodes: def.map(node => {
2728
return {
29+
id: `gid://sagittarius/ParameterDefinition/${getID(constructed)}`,
2830
names: getTranslationConnection(node.name),
2931
descriptions: getTranslationConnection(node.description),
3032
documentations: getTranslationConnection(node.documentation),

reader/ts/src/parser.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ import {getDataType} from "./mapper/dataTypeMapper.ts";
1313
export interface ConstructedDataTypes {
1414
scannedTucanaTypes: DefinitionDataType[]
1515
constructedDataTypes: DataType[]
16+
id: number
17+
}
18+
19+
export function getID(constructedDataTypes: ConstructedDataTypes) {
20+
const last = constructedDataTypes.id
21+
constructedDataTypes.id += 1
22+
return last
1623
}
1724

1825
export const Definition = (rootPath: string): Feature[] => {
@@ -63,7 +70,8 @@ export const Definition = (rootPath: string): Feature[] => {
6370
const features: Feature[] = []
6471
const constructed: ConstructedDataTypes = {
6572
scannedTucanaTypes: dataTypes.map(f => f.type),
66-
constructedDataTypes: []
73+
constructedDataTypes: [],
74+
id: 0
6775
}
6876

6977
function getFeature(name:string): Feature {

0 commit comments

Comments
 (0)