@odata-effect/odata-effect-generator 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,6 +17,12 @@ const UNKNOWN_TYPE = {
17
17
  };
18
18
  /**
19
19
  * OData V2 type mappings.
20
+ *
21
+ * Note: OData V2 sends certain types differently than V4:
22
+ * - DateTime/DateTimeOffset: Uses /Date(millis)/ format → DateTime.Utc / DateTime.Zoned
23
+ * - Time: Uses PT12H30M15S duration format → Duration.Duration
24
+ * - Byte, SByte, Single, Double: Sent as strings in JSON
25
+ * - Int64, Decimal: Sent as strings → BigDecimal.BigDecimal for precision
20
26
  */
21
27
  const V2_TYPE_MAP = {
22
28
  "Edm.String": {
@@ -30,12 +36,12 @@ const V2_TYPE_MAP = {
30
36
  tsType: "boolean"
31
37
  },
32
38
  "Edm.Byte": {
33
- effectSchema: "Schema.Number",
39
+ effectSchema: "ODataSchema.ODataV2Number",
34
40
  queryPath: "NumberPath",
35
41
  tsType: "number"
36
42
  },
37
43
  "Edm.SByte": {
38
- effectSchema: "Schema.Number",
44
+ effectSchema: "ODataSchema.ODataV2Number",
39
45
  queryPath: "NumberPath",
40
46
  tsType: "number"
41
47
  },
@@ -50,70 +56,140 @@ const V2_TYPE_MAP = {
50
56
  tsType: "number"
51
57
  },
52
58
  "Edm.Int64": {
53
- effectSchema: "Schema.String",
59
+ effectSchema: "ODataSchema.ODataV2Int64",
54
60
  queryPath: "StringPath",
55
- tsType: "string"
61
+ tsType: "BigDecimal.BigDecimal"
56
62
  },
57
63
  "Edm.Single": {
58
- effectSchema: "Schema.Number",
64
+ effectSchema: "ODataSchema.ODataV2Number",
59
65
  queryPath: "NumberPath",
60
66
  tsType: "number"
61
67
  },
62
68
  "Edm.Double": {
63
- effectSchema: "Schema.Number",
69
+ effectSchema: "ODataSchema.ODataV2Number",
64
70
  queryPath: "NumberPath",
65
71
  tsType: "number"
66
72
  },
67
73
  "Edm.Decimal": {
68
- effectSchema: "Schema.String",
74
+ effectSchema: "ODataSchema.ODataV2Decimal",
69
75
  queryPath: "StringPath",
70
- tsType: "string"
76
+ tsType: "BigDecimal.BigDecimal"
71
77
  },
72
78
  "Edm.Guid": {
73
- effectSchema: "Schema.String",
79
+ effectSchema: "ODataSchema.ODataGuid",
74
80
  queryPath: "StringPath",
75
81
  tsType: "string"
76
82
  },
77
83
  "Edm.Time": {
78
- effectSchema: "Schema.String",
84
+ effectSchema: "ODataSchema.ODataV2Time",
79
85
  queryPath: "StringPath",
80
- tsType: "string"
86
+ tsType: "Duration.Duration"
81
87
  },
82
88
  "Edm.DateTime": {
83
- effectSchema: "Schema.Date",
89
+ effectSchema: "ODataSchema.ODataV2DateTime",
84
90
  queryPath: "DateTimePath",
85
- tsType: "Date"
91
+ tsType: "DateTime.DateTime.Utc"
86
92
  },
87
93
  "Edm.DateTimeOffset": {
88
- effectSchema: "Schema.Date",
94
+ effectSchema: "ODataSchema.ODataV2DateTimeOffset",
89
95
  queryPath: "DateTimePath",
90
- tsType: "Date"
96
+ tsType: "DateTime.DateTime.Zoned"
91
97
  },
92
98
  "Edm.Binary": {
93
- effectSchema: "Schema.String",
99
+ effectSchema: "ODataSchema.ODataBinary",
94
100
  queryPath: "StringPath",
95
101
  tsType: "string"
96
102
  }
97
103
  };
98
104
  /**
99
- * OData V4 type mappings (extends V2).
105
+ * OData V4 type mappings.
106
+ *
107
+ * Note: V4 uses different formats than V2:
108
+ * - DateTimeOffset: Uses ISO 8601 format → DateTime.Zoned
109
+ * - Date: Uses date-only format (2022-12-31) → DateTime.Utc
110
+ * - Duration: Uses ISO 8601 duration format → Duration.Duration
111
+ * - Numeric types: Sent as actual JSON numbers, not strings
100
112
  */
101
113
  const V4_TYPE_MAP = {
102
- ...V2_TYPE_MAP,
103
- "Edm.Date": {
114
+ "Edm.String": {
104
115
  effectSchema: "Schema.String",
105
116
  queryPath: "StringPath",
106
117
  tsType: "string"
107
118
  },
119
+ "Edm.Boolean": {
120
+ effectSchema: "Schema.Boolean",
121
+ queryPath: "BooleanPath",
122
+ tsType: "boolean"
123
+ },
124
+ "Edm.Byte": {
125
+ effectSchema: "Schema.Number",
126
+ queryPath: "NumberPath",
127
+ tsType: "number"
128
+ },
129
+ "Edm.SByte": {
130
+ effectSchema: "Schema.Number",
131
+ queryPath: "NumberPath",
132
+ tsType: "number"
133
+ },
134
+ "Edm.Int16": {
135
+ effectSchema: "Schema.Number",
136
+ queryPath: "NumberPath",
137
+ tsType: "number"
138
+ },
139
+ "Edm.Int32": {
140
+ effectSchema: "Schema.Number",
141
+ queryPath: "NumberPath",
142
+ tsType: "number"
143
+ },
144
+ "Edm.Int64": {
145
+ effectSchema: "Schema.Number",
146
+ queryPath: "NumberPath",
147
+ tsType: "number"
148
+ },
149
+ "Edm.Single": {
150
+ effectSchema: "Schema.Number",
151
+ queryPath: "NumberPath",
152
+ tsType: "number"
153
+ },
154
+ "Edm.Double": {
155
+ effectSchema: "Schema.Number",
156
+ queryPath: "NumberPath",
157
+ tsType: "number"
158
+ },
159
+ "Edm.Decimal": {
160
+ effectSchema: "Schema.Number",
161
+ queryPath: "NumberPath",
162
+ tsType: "number"
163
+ },
164
+ "Edm.Guid": {
165
+ effectSchema: "ODataSchema.ODataGuid",
166
+ queryPath: "StringPath",
167
+ tsType: "string"
168
+ },
169
+ "Edm.Binary": {
170
+ effectSchema: "ODataSchema.ODataBinary",
171
+ queryPath: "StringPath",
172
+ tsType: "string"
173
+ },
174
+ "Edm.DateTimeOffset": {
175
+ effectSchema: "ODataSchema.ODataV4DateTimeOffset",
176
+ queryPath: "DateTimePath",
177
+ tsType: "DateTime.DateTime.Zoned"
178
+ },
179
+ "Edm.Date": {
180
+ effectSchema: "ODataSchema.ODataV4Date",
181
+ queryPath: "DateTimePath",
182
+ tsType: "DateTime.DateTime.Utc"
183
+ },
108
184
  "Edm.TimeOfDay": {
109
- effectSchema: "Schema.String",
185
+ effectSchema: "ODataSchema.ODataV4TimeOfDay",
110
186
  queryPath: "StringPath",
111
187
  tsType: "string"
112
188
  },
113
189
  "Edm.Duration": {
114
- effectSchema: "Schema.String",
190
+ effectSchema: "ODataSchema.ODataV4Duration",
115
191
  queryPath: "StringPath",
116
- tsType: "string"
192
+ tsType: "Duration.Duration"
117
193
  },
118
194
  "Edm.Stream": {
119
195
  effectSchema: "Schema.String",
@@ -1 +1 @@
1
- {"version":3,"file":"TypeMapper.js","names":["UNKNOWN_TYPE","effectSchema","queryPath","tsType","V2_TYPE_MAP","V4_TYPE_MAP","parseODataType","typeString","collectionMatch","match","baseType","isCollection","exports","isPrimitiveType","type","startsWith","getPrimitiveTypeMapping","version","typeMap","getComplexTypeMapping","typeName","getEnumTypeMapping","getNavigationTypeMapping","getCollectionNavigationTypeMapping","getSimpleTypeName","fqName","parts","split","length"],"sources":["../../../src/digester/TypeMapper.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TypeMapper.js","names":["UNKNOWN_TYPE","effectSchema","queryPath","tsType","V2_TYPE_MAP","V4_TYPE_MAP","parseODataType","typeString","collectionMatch","match","baseType","isCollection","exports","isPrimitiveType","type","startsWith","getPrimitiveTypeMapping","version","typeMap","getComplexTypeMapping","typeName","getEnumTypeMapping","getNavigationTypeMapping","getCollectionNavigationTypeMapping","getSimpleTypeName","fqName","parts","split","length"],"sources":["../../../src/digester/TypeMapper.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -58,6 +58,41 @@ const sortTypesByDependency = (types, allComplexTypes, allEntityTypes) => {
58
58
  }
59
59
  return sorted;
60
60
  };
61
+ /**
62
+ * Check if any property uses ODataSchema types.
63
+ */
64
+ const needsODataSchemaImport = dataModel => {
65
+ const checkProperties = properties => properties.some(p => p.typeMapping.effectSchema.startsWith("ODataSchema."));
66
+ for (const type of dataModel.entityTypes.values()) {
67
+ if (checkProperties(type.properties)) return true;
68
+ }
69
+ for (const type of dataModel.complexTypes.values()) {
70
+ if (checkProperties(type.properties)) return true;
71
+ }
72
+ return false;
73
+ };
74
+ /**
75
+ * Check which Effect type imports are needed based on tsType usage.
76
+ */
77
+ const getNeededEffectTypeImports = dataModel => {
78
+ const needed = new Set();
79
+ const checkTsType = tsType => {
80
+ if (tsType.startsWith("DateTime.")) needed.add("DateTime");
81
+ if (tsType.startsWith("BigDecimal.")) needed.add("BigDecimal");
82
+ if (tsType.startsWith("Duration.")) needed.add("Duration");
83
+ };
84
+ for (const type of dataModel.entityTypes.values()) {
85
+ for (const prop of type.properties) {
86
+ checkTsType(prop.typeMapping.tsType);
87
+ }
88
+ }
89
+ for (const type of dataModel.complexTypes.values()) {
90
+ for (const prop of type.properties) {
91
+ checkTsType(prop.typeMapping.tsType);
92
+ }
93
+ }
94
+ return needed;
95
+ };
61
96
  /**
62
97
  * Generate the Models.ts file content.
63
98
  *
@@ -77,6 +112,15 @@ const generateModels = dataModel => {
77
112
  lines.push(` * @since 1.0.0`);
78
113
  lines.push(` */`);
79
114
  lines.push(`import * as Schema from "effect/Schema"`);
115
+ // Add Effect type imports if needed (for DateTime, BigDecimal, Duration)
116
+ const effectTypeImports = getNeededEffectTypeImports(dataModel);
117
+ for (const effectType of effectTypeImports) {
118
+ lines.push(`import type * as ${effectType} from "effect/${effectType}"`);
119
+ }
120
+ // Add ODataSchema import if needed
121
+ if (needsODataSchemaImport(dataModel)) {
122
+ lines.push(`import { ODataSchema } from "@odata-effect/odata-effect"`);
123
+ }
80
124
  lines.push(``);
81
125
  // Generate enum types (no dependencies, always first)
82
126
  for (const enumType of dataModel.enumTypes.values()) {
@@ -1 +1 @@
1
- {"version":3,"file":"ModelsGenerator.js","names":["_NamingHelper","require","getTypeDependencies","type","allComplexTypes","allEntityTypes","deps","Set","baseType","baseTypeName","getClassName","split","pop","has","add","prop","properties","propTypeName","typeMapping","effectSchema","sortTypesByDependency","types","sorted","visited","visiting","visit","name","push","depName","depType","find","t","delete","generateModels","dataModel","lines","Array","from","complexTypes","values","map","entityTypes","serviceName","enumType","enumTypes","line","generateEnumType","sortedComplexTypes","complexType","generateComplexType","sortedEntityTypes","entityType","generateEntityType","join","exports","members","m","odataName","fields","generateSchemaFields","navigationProperties","f","editableFields","generateEditableSchemaFields","editableName","getEditableTypeName","keys","length","idTypeName","getIdTypeName","key","keySchema","getPropertySchemaType","keyFields","k","schema","filter","p","isKey","_navigationProperties","_dataModel","i","schemaType","isNullable","isLast","fieldDef","getPropertyFieldDefinition","makeOptional","isCollection"],"sources":["../../../src/generator/ModelsGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ModelsGenerator.js","names":["_NamingHelper","require","getTypeDependencies","type","allComplexTypes","allEntityTypes","deps","Set","baseType","baseTypeName","getClassName","split","pop","has","add","prop","properties","propTypeName","typeMapping","effectSchema","sortTypesByDependency","types","sorted","visited","visiting","visit","name","push","depName","depType","find","t","delete","needsODataSchemaImport","dataModel","checkProperties","some","p","startsWith","entityTypes","values","complexTypes","getNeededEffectTypeImports","needed","checkTsType","tsType","generateModels","lines","Array","from","map","serviceName","effectTypeImports","effectType","enumType","enumTypes","line","generateEnumType","sortedComplexTypes","complexType","generateComplexType","sortedEntityTypes","entityType","generateEntityType","join","exports","members","m","odataName","fields","generateSchemaFields","navigationProperties","f","editableFields","generateEditableSchemaFields","editableName","getEditableTypeName","keys","length","idTypeName","getIdTypeName","key","keySchema","getPropertySchemaType","keyFields","k","schema","filter","isKey","_navigationProperties","_dataModel","i","schemaType","isNullable","isLast","fieldDef","getPropertyFieldDefinition","makeOptional","isCollection"],"sources":["../../../src/generator/ModelsGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TypeMapper.d.ts","sourceRoot":"","sources":["../../../src/digester/TypeMapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAyD3D;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,KAAG,UAYnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,OAE9C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,YAAY,EACrB,MAAM,MAAM,KACX,WAGF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,WAIvD,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,WAIpD,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,WAI1D,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,GAAI,UAAU,MAAM,KAAG,WAIpE,CAAA;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,MAGlD,CAAA"}
1
+ {"version":3,"file":"TypeMapper.d.ts","sourceRoot":"","sources":["../../../src/digester/TypeMapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAiH3D;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,KAAG,UAYnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,OAE9C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,YAAY,EACrB,MAAM,MAAM,KACX,WAGF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,WAIvD,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,WAIpD,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,WAI1D,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,GAAI,UAAU,MAAM,KAAG,WAIpE,CAAA;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,MAGlD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModelsGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/ModelsGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAEV,SAAS,EAKV,MAAM,uBAAuB,CAAA;AA2E9B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,WAAW,SAAS,KAAG,MA8CrD,CAAA"}
1
+ {"version":3,"file":"ModelsGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/ModelsGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAEV,SAAS,EAKV,MAAM,uBAAuB,CAAA;AAqH9B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,WAAW,SAAS,KAAG,MA0DrD,CAAA"}
@@ -11,6 +11,12 @@ const UNKNOWN_TYPE = {
11
11
  };
12
12
  /**
13
13
  * OData V2 type mappings.
14
+ *
15
+ * Note: OData V2 sends certain types differently than V4:
16
+ * - DateTime/DateTimeOffset: Uses /Date(millis)/ format → DateTime.Utc / DateTime.Zoned
17
+ * - Time: Uses PT12H30M15S duration format → Duration.Duration
18
+ * - Byte, SByte, Single, Double: Sent as strings in JSON
19
+ * - Int64, Decimal: Sent as strings → BigDecimal.BigDecimal for precision
14
20
  */
15
21
  const V2_TYPE_MAP = {
16
22
  "Edm.String": {
@@ -24,12 +30,12 @@ const V2_TYPE_MAP = {
24
30
  tsType: "boolean"
25
31
  },
26
32
  "Edm.Byte": {
27
- effectSchema: "Schema.Number",
33
+ effectSchema: "ODataSchema.ODataV2Number",
28
34
  queryPath: "NumberPath",
29
35
  tsType: "number"
30
36
  },
31
37
  "Edm.SByte": {
32
- effectSchema: "Schema.Number",
38
+ effectSchema: "ODataSchema.ODataV2Number",
33
39
  queryPath: "NumberPath",
34
40
  tsType: "number"
35
41
  },
@@ -44,70 +50,140 @@ const V2_TYPE_MAP = {
44
50
  tsType: "number"
45
51
  },
46
52
  "Edm.Int64": {
47
- effectSchema: "Schema.String",
53
+ effectSchema: "ODataSchema.ODataV2Int64",
48
54
  queryPath: "StringPath",
49
- tsType: "string"
55
+ tsType: "BigDecimal.BigDecimal"
50
56
  },
51
57
  "Edm.Single": {
52
- effectSchema: "Schema.Number",
58
+ effectSchema: "ODataSchema.ODataV2Number",
53
59
  queryPath: "NumberPath",
54
60
  tsType: "number"
55
61
  },
56
62
  "Edm.Double": {
57
- effectSchema: "Schema.Number",
63
+ effectSchema: "ODataSchema.ODataV2Number",
58
64
  queryPath: "NumberPath",
59
65
  tsType: "number"
60
66
  },
61
67
  "Edm.Decimal": {
62
- effectSchema: "Schema.String",
68
+ effectSchema: "ODataSchema.ODataV2Decimal",
63
69
  queryPath: "StringPath",
64
- tsType: "string"
70
+ tsType: "BigDecimal.BigDecimal"
65
71
  },
66
72
  "Edm.Guid": {
67
- effectSchema: "Schema.String",
73
+ effectSchema: "ODataSchema.ODataGuid",
68
74
  queryPath: "StringPath",
69
75
  tsType: "string"
70
76
  },
71
77
  "Edm.Time": {
72
- effectSchema: "Schema.String",
78
+ effectSchema: "ODataSchema.ODataV2Time",
73
79
  queryPath: "StringPath",
74
- tsType: "string"
80
+ tsType: "Duration.Duration"
75
81
  },
76
82
  "Edm.DateTime": {
77
- effectSchema: "Schema.Date",
83
+ effectSchema: "ODataSchema.ODataV2DateTime",
78
84
  queryPath: "DateTimePath",
79
- tsType: "Date"
85
+ tsType: "DateTime.DateTime.Utc"
80
86
  },
81
87
  "Edm.DateTimeOffset": {
82
- effectSchema: "Schema.Date",
88
+ effectSchema: "ODataSchema.ODataV2DateTimeOffset",
83
89
  queryPath: "DateTimePath",
84
- tsType: "Date"
90
+ tsType: "DateTime.DateTime.Zoned"
85
91
  },
86
92
  "Edm.Binary": {
87
- effectSchema: "Schema.String",
93
+ effectSchema: "ODataSchema.ODataBinary",
88
94
  queryPath: "StringPath",
89
95
  tsType: "string"
90
96
  }
91
97
  };
92
98
  /**
93
- * OData V4 type mappings (extends V2).
99
+ * OData V4 type mappings.
100
+ *
101
+ * Note: V4 uses different formats than V2:
102
+ * - DateTimeOffset: Uses ISO 8601 format → DateTime.Zoned
103
+ * - Date: Uses date-only format (2022-12-31) → DateTime.Utc
104
+ * - Duration: Uses ISO 8601 duration format → Duration.Duration
105
+ * - Numeric types: Sent as actual JSON numbers, not strings
94
106
  */
95
107
  const V4_TYPE_MAP = {
96
- ...V2_TYPE_MAP,
97
- "Edm.Date": {
108
+ "Edm.String": {
98
109
  effectSchema: "Schema.String",
99
110
  queryPath: "StringPath",
100
111
  tsType: "string"
101
112
  },
113
+ "Edm.Boolean": {
114
+ effectSchema: "Schema.Boolean",
115
+ queryPath: "BooleanPath",
116
+ tsType: "boolean"
117
+ },
118
+ "Edm.Byte": {
119
+ effectSchema: "Schema.Number",
120
+ queryPath: "NumberPath",
121
+ tsType: "number"
122
+ },
123
+ "Edm.SByte": {
124
+ effectSchema: "Schema.Number",
125
+ queryPath: "NumberPath",
126
+ tsType: "number"
127
+ },
128
+ "Edm.Int16": {
129
+ effectSchema: "Schema.Number",
130
+ queryPath: "NumberPath",
131
+ tsType: "number"
132
+ },
133
+ "Edm.Int32": {
134
+ effectSchema: "Schema.Number",
135
+ queryPath: "NumberPath",
136
+ tsType: "number"
137
+ },
138
+ "Edm.Int64": {
139
+ effectSchema: "Schema.Number",
140
+ queryPath: "NumberPath",
141
+ tsType: "number"
142
+ },
143
+ "Edm.Single": {
144
+ effectSchema: "Schema.Number",
145
+ queryPath: "NumberPath",
146
+ tsType: "number"
147
+ },
148
+ "Edm.Double": {
149
+ effectSchema: "Schema.Number",
150
+ queryPath: "NumberPath",
151
+ tsType: "number"
152
+ },
153
+ "Edm.Decimal": {
154
+ effectSchema: "Schema.Number",
155
+ queryPath: "NumberPath",
156
+ tsType: "number"
157
+ },
158
+ "Edm.Guid": {
159
+ effectSchema: "ODataSchema.ODataGuid",
160
+ queryPath: "StringPath",
161
+ tsType: "string"
162
+ },
163
+ "Edm.Binary": {
164
+ effectSchema: "ODataSchema.ODataBinary",
165
+ queryPath: "StringPath",
166
+ tsType: "string"
167
+ },
168
+ "Edm.DateTimeOffset": {
169
+ effectSchema: "ODataSchema.ODataV4DateTimeOffset",
170
+ queryPath: "DateTimePath",
171
+ tsType: "DateTime.DateTime.Zoned"
172
+ },
173
+ "Edm.Date": {
174
+ effectSchema: "ODataSchema.ODataV4Date",
175
+ queryPath: "DateTimePath",
176
+ tsType: "DateTime.DateTime.Utc"
177
+ },
102
178
  "Edm.TimeOfDay": {
103
- effectSchema: "Schema.String",
179
+ effectSchema: "ODataSchema.ODataV4TimeOfDay",
104
180
  queryPath: "StringPath",
105
181
  tsType: "string"
106
182
  },
107
183
  "Edm.Duration": {
108
- effectSchema: "Schema.String",
184
+ effectSchema: "ODataSchema.ODataV4Duration",
109
185
  queryPath: "StringPath",
110
- tsType: "string"
186
+ tsType: "Duration.Duration"
111
187
  },
112
188
  "Edm.Stream": {
113
189
  effectSchema: "Schema.String",
@@ -1 +1 @@
1
- {"version":3,"file":"TypeMapper.js","names":["UNKNOWN_TYPE","effectSchema","queryPath","tsType","V2_TYPE_MAP","V4_TYPE_MAP","parseODataType","typeString","collectionMatch","match","baseType","isCollection","isPrimitiveType","type","startsWith","getPrimitiveTypeMapping","version","typeMap","getComplexTypeMapping","typeName","getEnumTypeMapping","getNavigationTypeMapping","getCollectionNavigationTypeMapping","getSimpleTypeName","fqName","parts","split","length"],"sources":["../../../src/digester/TypeMapper.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TypeMapper.js","names":["UNKNOWN_TYPE","effectSchema","queryPath","tsType","V2_TYPE_MAP","V4_TYPE_MAP","parseODataType","typeString","collectionMatch","match","baseType","isCollection","isPrimitiveType","type","startsWith","getPrimitiveTypeMapping","version","typeMap","getComplexTypeMapping","typeName","getEnumTypeMapping","getNavigationTypeMapping","getCollectionNavigationTypeMapping","getSimpleTypeName","fqName","parts","split","length"],"sources":["../../../src/digester/TypeMapper.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -52,6 +52,41 @@ const sortTypesByDependency = (types, allComplexTypes, allEntityTypes) => {
52
52
  }
53
53
  return sorted;
54
54
  };
55
+ /**
56
+ * Check if any property uses ODataSchema types.
57
+ */
58
+ const needsODataSchemaImport = dataModel => {
59
+ const checkProperties = properties => properties.some(p => p.typeMapping.effectSchema.startsWith("ODataSchema."));
60
+ for (const type of dataModel.entityTypes.values()) {
61
+ if (checkProperties(type.properties)) return true;
62
+ }
63
+ for (const type of dataModel.complexTypes.values()) {
64
+ if (checkProperties(type.properties)) return true;
65
+ }
66
+ return false;
67
+ };
68
+ /**
69
+ * Check which Effect type imports are needed based on tsType usage.
70
+ */
71
+ const getNeededEffectTypeImports = dataModel => {
72
+ const needed = new Set();
73
+ const checkTsType = tsType => {
74
+ if (tsType.startsWith("DateTime.")) needed.add("DateTime");
75
+ if (tsType.startsWith("BigDecimal.")) needed.add("BigDecimal");
76
+ if (tsType.startsWith("Duration.")) needed.add("Duration");
77
+ };
78
+ for (const type of dataModel.entityTypes.values()) {
79
+ for (const prop of type.properties) {
80
+ checkTsType(prop.typeMapping.tsType);
81
+ }
82
+ }
83
+ for (const type of dataModel.complexTypes.values()) {
84
+ for (const prop of type.properties) {
85
+ checkTsType(prop.typeMapping.tsType);
86
+ }
87
+ }
88
+ return needed;
89
+ };
55
90
  /**
56
91
  * Generate the Models.ts file content.
57
92
  *
@@ -71,6 +106,15 @@ export const generateModels = dataModel => {
71
106
  lines.push(` * @since 1.0.0`);
72
107
  lines.push(` */`);
73
108
  lines.push(`import * as Schema from "effect/Schema"`);
109
+ // Add Effect type imports if needed (for DateTime, BigDecimal, Duration)
110
+ const effectTypeImports = getNeededEffectTypeImports(dataModel);
111
+ for (const effectType of effectTypeImports) {
112
+ lines.push(`import type * as ${effectType} from "effect/${effectType}"`);
113
+ }
114
+ // Add ODataSchema import if needed
115
+ if (needsODataSchemaImport(dataModel)) {
116
+ lines.push(`import { ODataSchema } from "@odata-effect/odata-effect"`);
117
+ }
74
118
  lines.push(``);
75
119
  // Generate enum types (no dependencies, always first)
76
120
  for (const enumType of dataModel.enumTypes.values()) {
@@ -1 +1 @@
1
- {"version":3,"file":"ModelsGenerator.js","names":["getClassName","getEditableTypeName","getIdTypeName","getTypeDependencies","type","allComplexTypes","allEntityTypes","deps","Set","baseType","baseTypeName","split","pop","has","add","prop","properties","propTypeName","typeMapping","effectSchema","sortTypesByDependency","types","sorted","visited","visiting","visit","name","push","depName","depType","find","t","delete","generateModels","dataModel","lines","Array","from","complexTypes","values","map","entityTypes","serviceName","enumType","enumTypes","line","generateEnumType","sortedComplexTypes","complexType","generateComplexType","sortedEntityTypes","entityType","generateEntityType","join","members","m","odataName","fields","generateSchemaFields","navigationProperties","f","editableFields","generateEditableSchemaFields","editableName","keys","length","idTypeName","key","keySchema","getPropertySchemaType","keyFields","k","schema","filter","p","isKey","_navigationProperties","_dataModel","i","schemaType","isNullable","isLast","fieldDef","getPropertyFieldDefinition","makeOptional","isCollection"],"sources":["../../../src/generator/ModelsGenerator.ts"],"sourcesContent":[null],"mappings":"AAaA,SAASA,YAAY,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ,mBAAmB;AAEpF;;;AAGA,MAAMC,mBAAmB,GAAGA,CAC1BC,IAAwC,EACxCC,eAA4B,EAC5BC,cAA2B,KACZ;EACf,MAAMC,IAAI,GAAG,IAAIC,GAAG,EAAU;EAE9B;EACA,IAAIJ,IAAI,CAACK,QAAQ,EAAE;IACjB,MAAMC,YAAY,GAAGV,YAAY,CAACI,IAAI,CAACK,QAAQ,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE,IAAIR,IAAI,CAACK,QAAQ,CAAC;IAClF,IAAIJ,eAAe,CAACQ,GAAG,CAACH,YAAY,CAAC,IAAIJ,cAAc,CAACO,GAAG,CAACH,YAAY,CAAC,EAAE;MACzEH,IAAI,CAACO,GAAG,CAACJ,YAAY,CAAC;IACxB;EACF;EAEA;EACA,KAAK,MAAMK,IAAI,IAAIX,IAAI,CAACY,UAAU,EAAE;IAClC,MAAMC,YAAY,GAAGF,IAAI,CAACG,WAAW,CAACC,YAAY;IAClD,IAAId,eAAe,CAACQ,GAAG,CAACI,YAAY,CAAC,EAAE;MACrCV,IAAI,CAACO,GAAG,CAACG,YAAY,CAAC;IACxB;EACF;EAEA,OAAOV,IAAI;AACb,CAAC;AAED;;;AAGA,MAAMa,qBAAqB,GAAGA,CAC5BC,KAAe,EACfhB,eAA4B,EAC5BC,cAA2B,KACf;EACZ,MAAMgB,MAAM,GAAa,EAAE;EAC3B,MAAMC,OAAO,GAAG,IAAIf,GAAG,EAAU;EACjC,MAAMgB,QAAQ,GAAG,IAAIhB,GAAG,EAAU;EAElC,MAAMiB,KAAK,GAAIrB,IAAO,IAAI;IACxB,IAAImB,OAAO,CAACV,GAAG,CAACT,IAAI,CAACsB,IAAI,CAAC,EAAE;IAC5B,IAAIF,QAAQ,CAACX,GAAG,CAACT,IAAI,CAACsB,IAAI,CAAC,EAAE;MAC3B;MACAH,OAAO,CAACT,GAAG,CAACV,IAAI,CAACsB,IAAI,CAAC;MACtBJ,MAAM,CAACK,IAAI,CAACvB,IAAI,CAAC;MACjB;IACF;IAEAoB,QAAQ,CAACV,GAAG,CAACV,IAAI,CAACsB,IAAI,CAAC;IAEvB,MAAMnB,IAAI,GAAGJ,mBAAmB,CAACC,IAAI,EAAEC,eAAe,EAAEC,cAAc,CAAC;IACvE,KAAK,MAAMsB,OAAO,IAAIrB,IAAI,EAAE;MAC1B,MAAMsB,OAAO,GAAGR,KAAK,CAACS,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACL,IAAI,KAAKE,OAAO,CAAC;MACrD,IAAIC,OAAO,IAAI,CAACN,OAAO,CAACV,GAAG,CAACe,OAAO,CAAC,EAAE;QACpCH,KAAK,CAACI,OAAO,CAAC;MAChB;IACF;IAEAL,QAAQ,CAACQ,MAAM,CAAC5B,IAAI,CAACsB,IAAI,CAAC;IAC1BH,OAAO,CAACT,GAAG,CAACV,IAAI,CAACsB,IAAI,CAAC;IACtBJ,MAAM,CAACK,IAAI,CAACvB,IAAI,CAAC;EACnB,CAAC;EAED,KAAK,MAAMA,IAAI,IAAIiB,KAAK,EAAE;IACxBI,KAAK,CAACrB,IAAI,CAAC;EACb;EAEA,OAAOkB,MAAM;AACf,CAAC;AAED;;;;;;AAMA,OAAO,MAAMW,cAAc,GAAIC,SAAoB,IAAY;EAC7D,MAAMC,KAAK,GAAkB,EAAE;EAE/B;EACA,MAAM9B,eAAe,GAAG,IAAIG,GAAG,CAAC4B,KAAK,CAACC,IAAI,CAACH,SAAS,CAACI,YAAY,CAACC,MAAM,EAAE,CAAC,CAACC,GAAG,CAAET,CAAC,IAAKA,CAAC,CAACL,IAAI,CAAC,CAAC;EAC/F,MAAMpB,cAAc,GAAG,IAAIE,GAAG,CAAC4B,KAAK,CAACC,IAAI,CAACH,SAAS,CAACO,WAAW,CAACF,MAAM,EAAE,CAAC,CAACC,GAAG,CAAET,CAAC,IAAKA,CAAC,CAACL,IAAI,CAAC,CAAC;EAE7F;EACAS,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EACjBQ,KAAK,CAACR,IAAI,CAAC,+BAA+BO,SAAS,CAACQ,WAAW,iBAAiB,CAAC;EACjFP,KAAK,CAACR,IAAI,CAAC,mCAAmC,CAAC;EAC/CQ,KAAK,CAACR,IAAI,CAAC,IAAI,CAAC;EAChBQ,KAAK,CAACR,IAAI,CAAC,iBAAiB,CAAC;EAC7BQ,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EACjBQ,KAAK,CAACR,IAAI,CAAC,yCAAyC,CAAC;EACrDQ,KAAK,CAACR,IAAI,CAAC,EAAE,CAAC;EAEd;EACA,KAAK,MAAMgB,QAAQ,IAAIT,SAAS,CAACU,SAAS,CAACL,MAAM,EAAE,EAAE;IACnD,KAAK,MAAMM,IAAI,IAAIC,gBAAgB,CAACH,QAAQ,CAAC,EAAER,KAAK,CAACR,IAAI,CAACkB,IAAI,CAAC;IAC/DV,KAAK,CAACR,IAAI,CAAC,EAAE,CAAC;EAChB;EAEA;EACA,MAAMoB,kBAAkB,GAAG3B,qBAAqB,CAC9CgB,KAAK,CAACC,IAAI,CAACH,SAAS,CAACI,YAAY,CAACC,MAAM,EAAE,CAAC,EAC3ClC,eAAe,EACfC,cAAc,CACf;EACD,KAAK,MAAM0C,WAAW,IAAID,kBAAkB,EAAE;IAC5C,KAAK,MAAMF,IAAI,IAAII,mBAAmB,CAACD,WAAW,EAAEd,SAAS,CAAC,EAAEC,KAAK,CAACR,IAAI,CAACkB,IAAI,CAAC;IAChFV,KAAK,CAACR,IAAI,CAAC,EAAE,CAAC;EAChB;EAEA;EACA,MAAMuB,iBAAiB,GAAG9B,qBAAqB,CAC7CgB,KAAK,CAACC,IAAI,CAACH,SAAS,CAACO,WAAW,CAACF,MAAM,EAAE,CAAC,EAC1ClC,eAAe,EACfC,cAAc,CACf;EACD,KAAK,MAAM6C,UAAU,IAAID,iBAAiB,EAAE;IAC1C,KAAK,MAAML,IAAI,IAAIO,kBAAkB,CAACD,UAAU,EAAEjB,SAAS,CAAC,EAAEC,KAAK,CAACR,IAAI,CAACkB,IAAI,CAAC;IAC9EV,KAAK,CAACR,IAAI,CAAC,EAAE,CAAC;EAChB;EAEA,OAAOQ,KAAK,CAACkB,IAAI,CAAC,IAAI,CAAC;AACzB,CAAC;AAED;;;AAGA,MAAMP,gBAAgB,GAAIH,QAAuB,IAAmB;EAClE,MAAMR,KAAK,GAAkB,EAAE;EAC/B,MAAMmB,OAAO,GAAGX,QAAQ,CAACW,OAAO,CAACd,GAAG,CAAEe,CAAC,IAAK,IAAIA,CAAC,CAAC7B,IAAI,GAAG,CAAC,CAAC2B,IAAI,CAAC,IAAI,CAAC;EAErElB,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EACjBQ,KAAK,CAACR,IAAI,CAAC,MAAMgB,QAAQ,CAACa,SAAS,aAAa,CAAC;EACjDrB,KAAK,CAACR,IAAI,CAAC,IAAI,CAAC;EAChBQ,KAAK,CAACR,IAAI,CAAC,iBAAiB,CAAC;EAC7BQ,KAAK,CAACR,IAAI,CAAC,oBAAoB,CAAC;EAChCQ,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EACjBQ,KAAK,CAACR,IAAI,CAAC,gBAAgBgB,QAAQ,CAACjB,IAAI,qBAAqB4B,OAAO,GAAG,CAAC;EACxEnB,KAAK,CAACR,IAAI,CAAC,eAAegB,QAAQ,CAACjB,IAAI,gCAAgCiB,QAAQ,CAACjB,IAAI,GAAG,CAAC;EAExF,OAAOS,KAAK;AACd,CAAC;AAED;;;AAGA,MAAMc,mBAAmB,GAAGA,CAC1BD,WAA6B,EAC7Bd,SAAoB,KACH;EACjB,MAAMC,KAAK,GAAkB,EAAE;EAE/BA,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EACjBQ,KAAK,CAACR,IAAI,CAAC,MAAMqB,WAAW,CAACQ,SAAS,gBAAgB,CAAC;EACvDrB,KAAK,CAACR,IAAI,CAAC,IAAI,CAAC;EAChBQ,KAAK,CAACR,IAAI,CAAC,iBAAiB,CAAC;EAC7BQ,KAAK,CAACR,IAAI,CAAC,qBAAqB,CAAC;EACjCQ,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EAEjB,MAAM8B,MAAM,GAAGC,oBAAoB,CAACV,WAAW,CAAChC,UAAU,EAAEgC,WAAW,CAACW,oBAAoB,EAAEzB,SAAS,CAAC;EAExGC,KAAK,CAACR,IAAI,CAAC,gBAAgBqB,WAAW,CAACtB,IAAI,yBAAyBsB,WAAW,CAACtB,IAAI,MAAMsB,WAAW,CAACtB,IAAI,MAAM,CAAC;EACjH,KAAK,MAAMkC,CAAC,IAAIH,MAAM,EAAEtB,KAAK,CAACR,IAAI,CAAC,KAAKiC,CAAC,EAAE,CAAC;EAC5CzB,KAAK,CAACR,IAAI,CAAC,OAAO,CAAC;EAEnB;EACAQ,KAAK,CAACR,IAAI,CAAC,EAAE,CAAC;EACdQ,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EACjBQ,KAAK,CAACR,IAAI,CAAC,eAAeqB,WAAW,CAACQ,SAAS,oCAAoC,CAAC;EACpFrB,KAAK,CAACR,IAAI,CAAC,IAAI,CAAC;EAChBQ,KAAK,CAACR,IAAI,CAAC,iBAAiB,CAAC;EAC7BQ,KAAK,CAACR,IAAI,CAAC,qBAAqB,CAAC;EACjCQ,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EAEjB,MAAMkC,cAAc,GAAGC,4BAA4B,CAACd,WAAW,CAAChC,UAAU,CAAC;EAC3E,MAAM+C,YAAY,GAAG9D,mBAAmB,CAAC+C,WAAW,CAACtB,IAAI,CAAC;EAE1DS,KAAK,CAACR,IAAI,CAAC,gBAAgBoC,YAAY,oBAAoB,CAAC;EAC5D,KAAK,MAAMH,CAAC,IAAIC,cAAc,EAAE1B,KAAK,CAACR,IAAI,CAAC,KAAKiC,CAAC,EAAE,CAAC;EACpDzB,KAAK,CAACR,IAAI,CAAC,IAAI,CAAC;EAChBQ,KAAK,CAACR,IAAI,CAAC,eAAeoC,YAAY,gCAAgCA,YAAY,GAAG,CAAC;EAEtF,OAAO5B,KAAK;AACd,CAAC;AAED;;;AAGA,MAAMiB,kBAAkB,GAAGA,CACzBD,UAA2B,EAC3BjB,SAAoB,KACH;EACjB,MAAMC,KAAK,GAAkB,EAAE;EAE/B;EACAA,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EACjBQ,KAAK,CAACR,IAAI,CAAC,MAAMwB,UAAU,CAACK,SAAS,eAAe,CAAC;EACrDrB,KAAK,CAACR,IAAI,CAAC,IAAI,CAAC;EAChBQ,KAAK,CAACR,IAAI,CAAC,iBAAiB,CAAC;EAC7BQ,KAAK,CAACR,IAAI,CAAC,qBAAqB,CAAC;EACjCQ,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EAEjB,MAAM8B,MAAM,GAAGC,oBAAoB,CAACP,UAAU,CAACnC,UAAU,EAAEmC,UAAU,CAACQ,oBAAoB,EAAEzB,SAAS,CAAC;EAEtGC,KAAK,CAACR,IAAI,CAAC,gBAAgBwB,UAAU,CAACzB,IAAI,yBAAyByB,UAAU,CAACzB,IAAI,MAAMyB,UAAU,CAACzB,IAAI,MAAM,CAAC;EAC9G,KAAK,MAAMkC,CAAC,IAAIH,MAAM,EAAEtB,KAAK,CAACR,IAAI,CAAC,KAAKiC,CAAC,EAAE,CAAC;EAC5CzB,KAAK,CAACR,IAAI,CAAC,OAAO,CAAC;EAEnB;EACA,IAAIwB,UAAU,CAACa,IAAI,CAACC,MAAM,GAAG,CAAC,EAAE;IAC9B9B,KAAK,CAACR,IAAI,CAAC,EAAE,CAAC;IACdQ,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;IACjBQ,KAAK,CAACR,IAAI,CAAC,MAAMwB,UAAU,CAACK,SAAS,WAAW,CAAC;IACjDrB,KAAK,CAACR,IAAI,CAAC,IAAI,CAAC;IAChBQ,KAAK,CAACR,IAAI,CAAC,iBAAiB,CAAC;IAC7BQ,KAAK,CAACR,IAAI,CAAC,qBAAqB,CAAC;IACjCQ,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;IAEjB,MAAMuC,UAAU,GAAGhE,aAAa,CAACiD,UAAU,CAACzB,IAAI,CAAC;IAEjD,IAAIyB,UAAU,CAACa,IAAI,CAACC,MAAM,KAAK,CAAC,EAAE;MAChC,MAAME,GAAG,GAAGhB,UAAU,CAACa,IAAI,CAAC,CAAC,CAAC;MAC9B,MAAMI,SAAS,GAAGC,qBAAqB,CAACF,GAAG,EAAE,KAAK,CAAC;MACnDhC,KAAK,CAACR,IAAI,CAAC,gBAAgBuC,UAAU,kBAAkB,CAAC;MACxD/B,KAAK,CAACR,IAAI,CAAC,KAAKyC,SAAS,GAAG,CAAC;MAC7BjC,KAAK,CAACR,IAAI,CAAC,qBAAqBwC,GAAG,CAACzC,IAAI,KAAK0C,SAAS,KAAK,CAAC;MAC5DjC,KAAK,CAACR,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC,MAAM;MACL;MACA,MAAM2C,SAAS,GAAGnB,UAAU,CAACa,IAAI,CAACxB,GAAG,CAAE+B,CAAC,IAAI;QAC1C,MAAMC,MAAM,GAAGH,qBAAqB,CAACE,CAAC,EAAE,KAAK,CAAC;QAC9C,OAAO,GAAGA,CAAC,CAAC7C,IAAI,KAAK8C,MAAM,EAAE;MAC/B,CAAC,CAAC;MACFrC,KAAK,CAACR,IAAI,CAAC,gBAAgBuC,UAAU,sBAAsBI,SAAS,CAACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACvF;IACAlB,KAAK,CAACR,IAAI,CAAC,eAAeuC,UAAU,gCAAgCA,UAAU,GAAG,CAAC;EACpF;EAEA;EACA/B,KAAK,CAACR,IAAI,CAAC,EAAE,CAAC;EACdQ,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EACjBQ,KAAK,CAACR,IAAI,CAAC,eAAewB,UAAU,CAACK,SAAS,oCAAoC,CAAC;EACnFrB,KAAK,CAACR,IAAI,CAAC,IAAI,CAAC;EAChBQ,KAAK,CAACR,IAAI,CAAC,iBAAiB,CAAC;EAC7BQ,KAAK,CAACR,IAAI,CAAC,qBAAqB,CAAC;EACjCQ,KAAK,CAACR,IAAI,CAAC,KAAK,CAAC;EAEjB,MAAMkC,cAAc,GAAGC,4BAA4B,CACjDX,UAAU,CAACnC,UAAU,CAACyD,MAAM,CAAEC,CAAC,IAAK,CAACA,CAAC,CAACC,KAAK,CAAC,CAC9C;EACD,MAAMZ,YAAY,GAAG9D,mBAAmB,CAACkD,UAAU,CAACzB,IAAI,CAAC;EAEzDS,KAAK,CAACR,IAAI,CAAC,gBAAgBoC,YAAY,oBAAoB,CAAC;EAC5D,KAAK,MAAMH,CAAC,IAAIC,cAAc,EAAE1B,KAAK,CAACR,IAAI,CAAC,KAAKiC,CAAC,EAAE,CAAC;EACpDzB,KAAK,CAACR,IAAI,CAAC,IAAI,CAAC;EAChBQ,KAAK,CAACR,IAAI,CAAC,eAAeoC,YAAY,gCAAgCA,YAAY,GAAG,CAAC;EAEtF,OAAO5B,KAAK;AACd,CAAC;AAED;;;;;AAKA,MAAMuB,oBAAoB,GAAGA,CAC3B1C,UAAwC,EACxC4D,qBAA6D,EAC7DC,UAAqB,KACJ;EACjB,MAAMpB,MAAM,GAAkB,EAAE;EAEhC,KAAK,IAAIqB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG9D,UAAU,CAACiD,MAAM,EAAEa,CAAC,EAAE,EAAE;IAC1C,MAAM/D,IAAI,GAAGC,UAAU,CAAC8D,CAAC,CAAC;IAC1B,MAAMC,UAAU,GAAGV,qBAAqB,CAACtD,IAAI,EAAEA,IAAI,CAACiE,UAAU,IAAI,CAACjE,IAAI,CAAC4D,KAAK,CAAC;IAC9E,MAAMM,MAAM,GAAGH,CAAC,KAAK9D,UAAU,CAACiD,MAAM,GAAG,CAAC;IAC1C,MAAMiB,QAAQ,GAAGC,0BAA0B,CAACpE,IAAI,EAAEgE,UAAU,CAAC;IAC7DtB,MAAM,CAAC9B,IAAI,CAAC,GAAGuD,QAAQ,GAAGD,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;EAChD;EAEA;EACA;EAEA,OAAOxB,MAAM;AACf,CAAC;AAED;;;AAGA,MAAMK,4BAA4B,GAChC9C,UAAwC,IACvB;EACjB,MAAMyC,MAAM,GAAkB,EAAE;EAEhC,KAAK,IAAIqB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG9D,UAAU,CAACiD,MAAM,EAAEa,CAAC,EAAE,EAAE;IAC1C,MAAM/D,IAAI,GAAGC,UAAU,CAAC8D,CAAC,CAAC;IAC1B,MAAMC,UAAU,GAAGV,qBAAqB,CAACtD,IAAI,EAAEA,IAAI,CAACiE,UAAU,CAAC;IAC/D,MAAMC,MAAM,GAAGH,CAAC,KAAK9D,UAAU,CAACiD,MAAM,GAAG,CAAC;IAC1C,MAAMiB,QAAQ,GAAGC,0BAA0B,CAACpE,IAAI,EAAEgE,UAAU,CAAC;IAC7DtB,MAAM,CAAC9B,IAAI,CAAC,GAAGuD,QAAQ,GAAGD,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;EAChD;EAEA,OAAOxB,MAAM;AACf,CAAC;AAED;;;;;;;;;;;;;;AAcA,MAAM0B,0BAA0B,GAAGA,CACjCpE,IAAmB,EACnBgE,UAAkB,KACR;EACV;EACA,IAAIhE,IAAI,CAACyC,SAAS,KAAKzC,IAAI,CAACW,IAAI,EAAE;IAChC,OAAO,GAAGX,IAAI,CAACW,IAAI,KAAKqD,UAAU,EAAE;EACtC;EAEA;EACA,OAAO,GAAGhE,IAAI,CAACW,IAAI,8BAA8BqD,UAAU,0BAA0BhE,IAAI,CAACyC,SAAS,KAAK;AAC1G,CAAC;AAED;;;AAGA,MAAMa,qBAAqB,GAAGA,CAC5BtD,IAAmB,EACnBqE,YAAqB,KACX;EACV,IAAI3E,QAAQ,GAAGM,IAAI,CAACG,WAAW,CAACC,YAAY;EAE5C;EACA,IAAIJ,IAAI,CAACsE,YAAY,EAAE;IACrB5E,QAAQ,GAAG,gBAAgBA,QAAQ,GAAG;EACxC;EAEA;EACA,IAAI2E,YAAY,EAAE;IAChB,OAAO,uBAAuB3E,QAAQ,uBAAuB;EAC/D;EAEA,OAAOA,QAAQ;AACjB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"ModelsGenerator.js","names":["getClassName","getEditableTypeName","getIdTypeName","getTypeDependencies","type","allComplexTypes","allEntityTypes","deps","Set","baseType","baseTypeName","split","pop","has","add","prop","properties","propTypeName","typeMapping","effectSchema","sortTypesByDependency","types","sorted","visited","visiting","visit","name","push","depName","depType","find","t","delete","needsODataSchemaImport","dataModel","checkProperties","some","p","startsWith","entityTypes","values","complexTypes","getNeededEffectTypeImports","needed","checkTsType","tsType","generateModels","lines","Array","from","map","serviceName","effectTypeImports","effectType","enumType","enumTypes","line","generateEnumType","sortedComplexTypes","complexType","generateComplexType","sortedEntityTypes","entityType","generateEntityType","join","members","m","odataName","fields","generateSchemaFields","navigationProperties","f","editableFields","generateEditableSchemaFields","editableName","keys","length","idTypeName","key","keySchema","getPropertySchemaType","keyFields","k","schema","filter","isKey","_navigationProperties","_dataModel","i","schemaType","isNullable","isLast","fieldDef","getPropertyFieldDefinition","makeOptional","isCollection"],"sources":["../../../src/generator/ModelsGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odata-effect/odata-effect-generator",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "Effect-based OData service code generator",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -21,33 +21,89 @@ const UNKNOWN_TYPE: TypeMapping = {
21
21
 
22
22
  /**
23
23
  * OData V2 type mappings.
24
+ *
25
+ * Note: OData V2 sends certain types differently than V4:
26
+ * - DateTime/DateTimeOffset: Uses /Date(millis)/ format → DateTime.Utc / DateTime.Zoned
27
+ * - Time: Uses PT12H30M15S duration format → Duration.Duration
28
+ * - Byte, SByte, Single, Double: Sent as strings in JSON
29
+ * - Int64, Decimal: Sent as strings → BigDecimal.BigDecimal for precision
24
30
  */
25
31
  const V2_TYPE_MAP: Record<string, TypeMapping> = {
26
32
  "Edm.String": { effectSchema: "Schema.String", queryPath: "StringPath", tsType: "string" },
27
33
  "Edm.Boolean": { effectSchema: "Schema.Boolean", queryPath: "BooleanPath", tsType: "boolean" },
28
- "Edm.Byte": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
29
- "Edm.SByte": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
34
+ "Edm.Byte": { effectSchema: "ODataSchema.ODataV2Number", queryPath: "NumberPath", tsType: "number" },
35
+ "Edm.SByte": { effectSchema: "ODataSchema.ODataV2Number", queryPath: "NumberPath", tsType: "number" },
30
36
  "Edm.Int16": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
31
37
  "Edm.Int32": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
32
- "Edm.Int64": { effectSchema: "Schema.String", queryPath: "StringPath", tsType: "string" },
33
- "Edm.Single": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
34
- "Edm.Double": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
35
- "Edm.Decimal": { effectSchema: "Schema.String", queryPath: "StringPath", tsType: "string" },
36
- "Edm.Guid": { effectSchema: "Schema.String", queryPath: "StringPath", tsType: "string" },
37
- "Edm.Time": { effectSchema: "Schema.String", queryPath: "StringPath", tsType: "string" },
38
- "Edm.DateTime": { effectSchema: "Schema.Date", queryPath: "DateTimePath", tsType: "Date" },
39
- "Edm.DateTimeOffset": { effectSchema: "Schema.Date", queryPath: "DateTimePath", tsType: "Date" },
40
- "Edm.Binary": { effectSchema: "Schema.String", queryPath: "StringPath", tsType: "string" }
38
+ "Edm.Int64": {
39
+ effectSchema: "ODataSchema.ODataV2Int64",
40
+ queryPath: "StringPath",
41
+ tsType: "BigDecimal.BigDecimal"
42
+ },
43
+ "Edm.Single": { effectSchema: "ODataSchema.ODataV2Number", queryPath: "NumberPath", tsType: "number" },
44
+ "Edm.Double": { effectSchema: "ODataSchema.ODataV2Number", queryPath: "NumberPath", tsType: "number" },
45
+ "Edm.Decimal": {
46
+ effectSchema: "ODataSchema.ODataV2Decimal",
47
+ queryPath: "StringPath",
48
+ tsType: "BigDecimal.BigDecimal"
49
+ },
50
+ "Edm.Guid": { effectSchema: "ODataSchema.ODataGuid", queryPath: "StringPath", tsType: "string" },
51
+ "Edm.Time": {
52
+ effectSchema: "ODataSchema.ODataV2Time",
53
+ queryPath: "StringPath",
54
+ tsType: "Duration.Duration"
55
+ },
56
+ "Edm.DateTime": {
57
+ effectSchema: "ODataSchema.ODataV2DateTime",
58
+ queryPath: "DateTimePath",
59
+ tsType: "DateTime.DateTime.Utc"
60
+ },
61
+ "Edm.DateTimeOffset": {
62
+ effectSchema: "ODataSchema.ODataV2DateTimeOffset",
63
+ queryPath: "DateTimePath",
64
+ tsType: "DateTime.DateTime.Zoned"
65
+ },
66
+ "Edm.Binary": { effectSchema: "ODataSchema.ODataBinary", queryPath: "StringPath", tsType: "string" }
41
67
  }
42
68
 
43
69
  /**
44
- * OData V4 type mappings (extends V2).
70
+ * OData V4 type mappings.
71
+ *
72
+ * Note: V4 uses different formats than V2:
73
+ * - DateTimeOffset: Uses ISO 8601 format → DateTime.Zoned
74
+ * - Date: Uses date-only format (2022-12-31) → DateTime.Utc
75
+ * - Duration: Uses ISO 8601 duration format → Duration.Duration
76
+ * - Numeric types: Sent as actual JSON numbers, not strings
45
77
  */
46
78
  const V4_TYPE_MAP: Record<string, TypeMapping> = {
47
- ...V2_TYPE_MAP,
48
- "Edm.Date": { effectSchema: "Schema.String", queryPath: "StringPath", tsType: "string" },
49
- "Edm.TimeOfDay": { effectSchema: "Schema.String", queryPath: "StringPath", tsType: "string" },
50
- "Edm.Duration": { effectSchema: "Schema.String", queryPath: "StringPath", tsType: "string" },
79
+ "Edm.String": { effectSchema: "Schema.String", queryPath: "StringPath", tsType: "string" },
80
+ "Edm.Boolean": { effectSchema: "Schema.Boolean", queryPath: "BooleanPath", tsType: "boolean" },
81
+ "Edm.Byte": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
82
+ "Edm.SByte": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
83
+ "Edm.Int16": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
84
+ "Edm.Int32": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
85
+ "Edm.Int64": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
86
+ "Edm.Single": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
87
+ "Edm.Double": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
88
+ "Edm.Decimal": { effectSchema: "Schema.Number", queryPath: "NumberPath", tsType: "number" },
89
+ "Edm.Guid": { effectSchema: "ODataSchema.ODataGuid", queryPath: "StringPath", tsType: "string" },
90
+ "Edm.Binary": { effectSchema: "ODataSchema.ODataBinary", queryPath: "StringPath", tsType: "string" },
91
+ "Edm.DateTimeOffset": {
92
+ effectSchema: "ODataSchema.ODataV4DateTimeOffset",
93
+ queryPath: "DateTimePath",
94
+ tsType: "DateTime.DateTime.Zoned"
95
+ },
96
+ "Edm.Date": {
97
+ effectSchema: "ODataSchema.ODataV4Date",
98
+ queryPath: "DateTimePath",
99
+ tsType: "DateTime.DateTime.Utc"
100
+ },
101
+ "Edm.TimeOfDay": { effectSchema: "ODataSchema.ODataV4TimeOfDay", queryPath: "StringPath", tsType: "string" },
102
+ "Edm.Duration": {
103
+ effectSchema: "ODataSchema.ODataV4Duration",
104
+ queryPath: "StringPath",
105
+ tsType: "Duration.Duration"
106
+ },
51
107
  "Edm.Stream": { effectSchema: "Schema.String", queryPath: "StringPath", tsType: "string" },
52
108
  "Edm.GeographyPoint": { effectSchema: "Schema.Unknown", queryPath: "StringPath", tsType: "unknown" },
53
109
  "Edm.GeographyLineString": { effectSchema: "Schema.Unknown", queryPath: "StringPath", tsType: "unknown" },
@@ -85,6 +85,48 @@ const sortTypesByDependency = <T extends ComplexTypeModel | EntityTypeModel>(
85
85
  return sorted
86
86
  }
87
87
 
88
+ /**
89
+ * Check if any property uses ODataSchema types.
90
+ */
91
+ const needsODataSchemaImport = (dataModel: DataModel): boolean => {
92
+ const checkProperties = (properties: ReadonlyArray<PropertyModel>): boolean =>
93
+ properties.some((p) => p.typeMapping.effectSchema.startsWith("ODataSchema."))
94
+
95
+ for (const type of dataModel.entityTypes.values()) {
96
+ if (checkProperties(type.properties)) return true
97
+ }
98
+ for (const type of dataModel.complexTypes.values()) {
99
+ if (checkProperties(type.properties)) return true
100
+ }
101
+ return false
102
+ }
103
+
104
+ /**
105
+ * Check which Effect type imports are needed based on tsType usage.
106
+ */
107
+ const getNeededEffectTypeImports = (dataModel: DataModel): Set<string> => {
108
+ const needed = new Set<string>()
109
+
110
+ const checkTsType = (tsType: string): void => {
111
+ if (tsType.startsWith("DateTime.")) needed.add("DateTime")
112
+ if (tsType.startsWith("BigDecimal.")) needed.add("BigDecimal")
113
+ if (tsType.startsWith("Duration.")) needed.add("Duration")
114
+ }
115
+
116
+ for (const type of dataModel.entityTypes.values()) {
117
+ for (const prop of type.properties) {
118
+ checkTsType(prop.typeMapping.tsType)
119
+ }
120
+ }
121
+ for (const type of dataModel.complexTypes.values()) {
122
+ for (const prop of type.properties) {
123
+ checkTsType(prop.typeMapping.tsType)
124
+ }
125
+ }
126
+
127
+ return needed
128
+ }
129
+
88
130
  /**
89
131
  * Generate the Models.ts file content.
90
132
  *
@@ -106,6 +148,18 @@ export const generateModels = (dataModel: DataModel): string => {
106
148
  lines.push(` * @since 1.0.0`)
107
149
  lines.push(` */`)
108
150
  lines.push(`import * as Schema from "effect/Schema"`)
151
+
152
+ // Add Effect type imports if needed (for DateTime, BigDecimal, Duration)
153
+ const effectTypeImports = getNeededEffectTypeImports(dataModel)
154
+ for (const effectType of effectTypeImports) {
155
+ lines.push(`import type * as ${effectType} from "effect/${effectType}"`)
156
+ }
157
+
158
+ // Add ODataSchema import if needed
159
+ if (needsODataSchemaImport(dataModel)) {
160
+ lines.push(`import { ODataSchema } from "@odata-effect/odata-effect"`)
161
+ }
162
+
109
163
  lines.push(``)
110
164
 
111
165
  // Generate enum types (no dependencies, always first)