@odata-effect/odata-effect-generator 0.1.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.
Files changed (131) hide show
  1. package/Cli/package.json +6 -0
  2. package/LICENSE +21 -0
  3. package/README.md +37 -0
  4. package/bin/package.json +6 -0
  5. package/digester/Digester/package.json +6 -0
  6. package/digester/TypeMapper/package.json +6 -0
  7. package/dist/cjs/Cli.js +95 -0
  8. package/dist/cjs/Cli.js.map +1 -0
  9. package/dist/cjs/bin.js +14 -0
  10. package/dist/cjs/bin.js.map +1 -0
  11. package/dist/cjs/digester/Digester.js +488 -0
  12. package/dist/cjs/digester/Digester.js.map +1 -0
  13. package/dist/cjs/digester/TypeMapper.js +262 -0
  14. package/dist/cjs/digester/TypeMapper.js.map +1 -0
  15. package/dist/cjs/generator/Generator.js +126 -0
  16. package/dist/cjs/generator/Generator.js.map +1 -0
  17. package/dist/cjs/generator/IndexGenerator.js +164 -0
  18. package/dist/cjs/generator/IndexGenerator.js.map +1 -0
  19. package/dist/cjs/generator/ModelsGenerator.js +255 -0
  20. package/dist/cjs/generator/ModelsGenerator.js.map +1 -0
  21. package/dist/cjs/generator/NamingHelper.js +164 -0
  22. package/dist/cjs/generator/NamingHelper.js.map +1 -0
  23. package/dist/cjs/generator/PackageGenerator.js +168 -0
  24. package/dist/cjs/generator/PackageGenerator.js.map +1 -0
  25. package/dist/cjs/generator/QueryModelsGenerator.js +182 -0
  26. package/dist/cjs/generator/QueryModelsGenerator.js.map +1 -0
  27. package/dist/cjs/generator/ServiceFnGenerator.js +258 -0
  28. package/dist/cjs/generator/ServiceFnGenerator.js.map +1 -0
  29. package/dist/cjs/generator/ServiceFnPromiseGenerator.js +182 -0
  30. package/dist/cjs/generator/ServiceFnPromiseGenerator.js.map +1 -0
  31. package/dist/cjs/index.js +38 -0
  32. package/dist/cjs/index.js.map +1 -0
  33. package/dist/cjs/model/DataModel.js +28 -0
  34. package/dist/cjs/model/DataModel.js.map +1 -0
  35. package/dist/cjs/parser/EdmxSchema.js +20 -0
  36. package/dist/cjs/parser/EdmxSchema.js.map +1 -0
  37. package/dist/cjs/parser/XmlParser.js +47 -0
  38. package/dist/cjs/parser/XmlParser.js.map +1 -0
  39. package/dist/dts/Cli.d.ts +9 -0
  40. package/dist/dts/Cli.d.ts.map +1 -0
  41. package/dist/dts/bin.d.ts +3 -0
  42. package/dist/dts/bin.d.ts.map +1 -0
  43. package/dist/dts/digester/Digester.d.ts +33 -0
  44. package/dist/dts/digester/Digester.d.ts.map +1 -0
  45. package/dist/dts/digester/TypeMapper.d.ts +79 -0
  46. package/dist/dts/digester/TypeMapper.d.ts.map +1 -0
  47. package/dist/dts/generator/Generator.d.ts +45 -0
  48. package/dist/dts/generator/Generator.d.ts.map +1 -0
  49. package/dist/dts/generator/IndexGenerator.d.ts +14 -0
  50. package/dist/dts/generator/IndexGenerator.d.ts.map +1 -0
  51. package/dist/dts/generator/ModelsGenerator.d.ts +14 -0
  52. package/dist/dts/generator/ModelsGenerator.d.ts.map +1 -0
  53. package/dist/dts/generator/NamingHelper.d.ts +110 -0
  54. package/dist/dts/generator/NamingHelper.d.ts.map +1 -0
  55. package/dist/dts/generator/PackageGenerator.d.ts +53 -0
  56. package/dist/dts/generator/PackageGenerator.d.ts.map +1 -0
  57. package/dist/dts/generator/QueryModelsGenerator.d.ts +14 -0
  58. package/dist/dts/generator/QueryModelsGenerator.d.ts.map +1 -0
  59. package/dist/dts/generator/ServiceFnGenerator.d.ts +37 -0
  60. package/dist/dts/generator/ServiceFnGenerator.d.ts.map +1 -0
  61. package/dist/dts/generator/ServiceFnPromiseGenerator.d.ts +40 -0
  62. package/dist/dts/generator/ServiceFnPromiseGenerator.d.ts.map +1 -0
  63. package/dist/dts/index.d.ts +101 -0
  64. package/dist/dts/index.d.ts.map +1 -0
  65. package/dist/dts/model/DataModel.d.ts +188 -0
  66. package/dist/dts/model/DataModel.d.ts.map +1 -0
  67. package/dist/dts/parser/EdmxSchema.d.ts +228 -0
  68. package/dist/dts/parser/EdmxSchema.d.ts.map +1 -0
  69. package/dist/dts/parser/XmlParser.d.ts +31 -0
  70. package/dist/dts/parser/XmlParser.d.ts.map +1 -0
  71. package/dist/esm/Cli.js +87 -0
  72. package/dist/esm/Cli.js.map +1 -0
  73. package/dist/esm/bin.js +12 -0
  74. package/dist/esm/bin.js.map +1 -0
  75. package/dist/esm/digester/Digester.js +478 -0
  76. package/dist/esm/digester/Digester.js.map +1 -0
  77. package/dist/esm/digester/TypeMapper.js +248 -0
  78. package/dist/esm/digester/TypeMapper.js.map +1 -0
  79. package/dist/esm/generator/Generator.js +116 -0
  80. package/dist/esm/generator/Generator.js.map +1 -0
  81. package/dist/esm/generator/IndexGenerator.js +157 -0
  82. package/dist/esm/generator/IndexGenerator.js.map +1 -0
  83. package/dist/esm/generator/ModelsGenerator.js +248 -0
  84. package/dist/esm/generator/ModelsGenerator.js.map +1 -0
  85. package/dist/esm/generator/NamingHelper.js +147 -0
  86. package/dist/esm/generator/NamingHelper.js.map +1 -0
  87. package/dist/esm/generator/PackageGenerator.js +156 -0
  88. package/dist/esm/generator/PackageGenerator.js.map +1 -0
  89. package/dist/esm/generator/QueryModelsGenerator.js +175 -0
  90. package/dist/esm/generator/QueryModelsGenerator.js.map +1 -0
  91. package/dist/esm/generator/ServiceFnGenerator.js +251 -0
  92. package/dist/esm/generator/ServiceFnGenerator.js.map +1 -0
  93. package/dist/esm/generator/ServiceFnPromiseGenerator.js +174 -0
  94. package/dist/esm/generator/ServiceFnPromiseGenerator.js.map +1 -0
  95. package/dist/esm/index.js +101 -0
  96. package/dist/esm/index.js.map +1 -0
  97. package/dist/esm/model/DataModel.js +21 -0
  98. package/dist/esm/model/DataModel.js.map +1 -0
  99. package/dist/esm/package.json +4 -0
  100. package/dist/esm/parser/EdmxSchema.js +13 -0
  101. package/dist/esm/parser/EdmxSchema.js.map +1 -0
  102. package/dist/esm/parser/XmlParser.js +37 -0
  103. package/dist/esm/parser/XmlParser.js.map +1 -0
  104. package/generator/Generator/package.json +6 -0
  105. package/generator/IndexGenerator/package.json +6 -0
  106. package/generator/ModelsGenerator/package.json +6 -0
  107. package/generator/NamingHelper/package.json +6 -0
  108. package/generator/PackageGenerator/package.json +6 -0
  109. package/generator/QueryModelsGenerator/package.json +6 -0
  110. package/generator/ServiceFnGenerator/package.json +6 -0
  111. package/generator/ServiceFnPromiseGenerator/package.json +6 -0
  112. package/model/DataModel/package.json +6 -0
  113. package/package.json +157 -0
  114. package/parser/EdmxSchema/package.json +6 -0
  115. package/parser/XmlParser/package.json +6 -0
  116. package/src/Cli.ts +115 -0
  117. package/src/bin.ts +17 -0
  118. package/src/digester/Digester.ts +600 -0
  119. package/src/digester/TypeMapper.ts +181 -0
  120. package/src/generator/Generator.ts +183 -0
  121. package/src/generator/IndexGenerator.ts +189 -0
  122. package/src/generator/ModelsGenerator.ts +344 -0
  123. package/src/generator/NamingHelper.ts +159 -0
  124. package/src/generator/PackageGenerator.ts +176 -0
  125. package/src/generator/QueryModelsGenerator.ts +228 -0
  126. package/src/generator/ServiceFnGenerator.ts +324 -0
  127. package/src/generator/ServiceFnPromiseGenerator.ts +242 -0
  128. package/src/index.ts +114 -0
  129. package/src/model/DataModel.ts +254 -0
  130. package/src/parser/EdmxSchema.ts +308 -0
  131. package/src/parser/XmlParser.ts +47 -0
@@ -0,0 +1,262 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parseODataType = exports.isPrimitiveType = exports.getSimpleTypeName = exports.getPrimitiveTypeMapping = exports.getNavigationTypeMapping = exports.getEnumTypeMapping = exports.getComplexTypeMapping = exports.getCollectionNavigationTypeMapping = void 0;
7
+ // ============================================================================
8
+ // Type Mappings
9
+ // ============================================================================
10
+ /**
11
+ * Default type mapping for unknown types.
12
+ */
13
+ const UNKNOWN_TYPE = {
14
+ effectSchema: "Schema.Unknown",
15
+ queryPath: "StringPath",
16
+ tsType: "unknown"
17
+ };
18
+ /**
19
+ * OData V2 type mappings.
20
+ */
21
+ const V2_TYPE_MAP = {
22
+ "Edm.String": {
23
+ effectSchema: "Schema.String",
24
+ queryPath: "StringPath",
25
+ tsType: "string"
26
+ },
27
+ "Edm.Boolean": {
28
+ effectSchema: "Schema.Boolean",
29
+ queryPath: "BooleanPath",
30
+ tsType: "boolean"
31
+ },
32
+ "Edm.Byte": {
33
+ effectSchema: "Schema.Number",
34
+ queryPath: "NumberPath",
35
+ tsType: "number"
36
+ },
37
+ "Edm.SByte": {
38
+ effectSchema: "Schema.Number",
39
+ queryPath: "NumberPath",
40
+ tsType: "number"
41
+ },
42
+ "Edm.Int16": {
43
+ effectSchema: "Schema.Number",
44
+ queryPath: "NumberPath",
45
+ tsType: "number"
46
+ },
47
+ "Edm.Int32": {
48
+ effectSchema: "Schema.Number",
49
+ queryPath: "NumberPath",
50
+ tsType: "number"
51
+ },
52
+ "Edm.Int64": {
53
+ effectSchema: "Schema.String",
54
+ queryPath: "StringPath",
55
+ tsType: "string"
56
+ },
57
+ "Edm.Single": {
58
+ effectSchema: "Schema.Number",
59
+ queryPath: "NumberPath",
60
+ tsType: "number"
61
+ },
62
+ "Edm.Double": {
63
+ effectSchema: "Schema.Number",
64
+ queryPath: "NumberPath",
65
+ tsType: "number"
66
+ },
67
+ "Edm.Decimal": {
68
+ effectSchema: "Schema.String",
69
+ queryPath: "StringPath",
70
+ tsType: "string"
71
+ },
72
+ "Edm.Guid": {
73
+ effectSchema: "Schema.String",
74
+ queryPath: "StringPath",
75
+ tsType: "string"
76
+ },
77
+ "Edm.Time": {
78
+ effectSchema: "Schema.String",
79
+ queryPath: "StringPath",
80
+ tsType: "string"
81
+ },
82
+ "Edm.DateTime": {
83
+ effectSchema: "Schema.Date",
84
+ queryPath: "DateTimePath",
85
+ tsType: "Date"
86
+ },
87
+ "Edm.DateTimeOffset": {
88
+ effectSchema: "Schema.Date",
89
+ queryPath: "DateTimePath",
90
+ tsType: "Date"
91
+ },
92
+ "Edm.Binary": {
93
+ effectSchema: "Schema.String",
94
+ queryPath: "StringPath",
95
+ tsType: "string"
96
+ }
97
+ };
98
+ /**
99
+ * OData V4 type mappings (extends V2).
100
+ */
101
+ const V4_TYPE_MAP = {
102
+ ...V2_TYPE_MAP,
103
+ "Edm.Date": {
104
+ effectSchema: "Schema.String",
105
+ queryPath: "StringPath",
106
+ tsType: "string"
107
+ },
108
+ "Edm.TimeOfDay": {
109
+ effectSchema: "Schema.String",
110
+ queryPath: "StringPath",
111
+ tsType: "string"
112
+ },
113
+ "Edm.Duration": {
114
+ effectSchema: "Schema.String",
115
+ queryPath: "StringPath",
116
+ tsType: "string"
117
+ },
118
+ "Edm.Stream": {
119
+ effectSchema: "Schema.String",
120
+ queryPath: "StringPath",
121
+ tsType: "string"
122
+ },
123
+ "Edm.GeographyPoint": {
124
+ effectSchema: "Schema.Unknown",
125
+ queryPath: "StringPath",
126
+ tsType: "unknown"
127
+ },
128
+ "Edm.GeographyLineString": {
129
+ effectSchema: "Schema.Unknown",
130
+ queryPath: "StringPath",
131
+ tsType: "unknown"
132
+ },
133
+ "Edm.GeographyPolygon": {
134
+ effectSchema: "Schema.Unknown",
135
+ queryPath: "StringPath",
136
+ tsType: "unknown"
137
+ },
138
+ "Edm.GeometryPoint": {
139
+ effectSchema: "Schema.Unknown",
140
+ queryPath: "StringPath",
141
+ tsType: "unknown"
142
+ },
143
+ "Edm.GeometryLineString": {
144
+ effectSchema: "Schema.Unknown",
145
+ queryPath: "StringPath",
146
+ tsType: "unknown"
147
+ },
148
+ "Edm.GeometryPolygon": {
149
+ effectSchema: "Schema.Unknown",
150
+ queryPath: "StringPath",
151
+ tsType: "unknown"
152
+ }
153
+ };
154
+ /**
155
+ * Parse an OData type string to extract base type and collection info.
156
+ *
157
+ * @example
158
+ * parseODataType("Edm.String") // { baseType: "Edm.String", isCollection: false }
159
+ * parseODataType("Collection(Edm.String)") // { baseType: "Edm.String", isCollection: true }
160
+ *
161
+ * @since 1.0.0
162
+ * @category parsing
163
+ */
164
+ const parseODataType = typeString => {
165
+ const collectionMatch = typeString.match(/^Collection\((.+)\)$/);
166
+ if (collectionMatch) {
167
+ return {
168
+ baseType: collectionMatch[1],
169
+ isCollection: true
170
+ };
171
+ }
172
+ return {
173
+ baseType: typeString,
174
+ isCollection: false
175
+ };
176
+ };
177
+ /**
178
+ * Check if a type is a primitive EDM type.
179
+ *
180
+ * @since 1.0.0
181
+ * @category type-checking
182
+ */
183
+ exports.parseODataType = parseODataType;
184
+ const isPrimitiveType = type => {
185
+ return type.startsWith("Edm.");
186
+ };
187
+ /**
188
+ * Get the type mapping for a primitive OData type.
189
+ *
190
+ * @since 1.0.0
191
+ * @category type-mapping
192
+ */
193
+ exports.isPrimitiveType = isPrimitiveType;
194
+ const getPrimitiveTypeMapping = (version, type) => {
195
+ const typeMap = version === "V2" ? V2_TYPE_MAP : V4_TYPE_MAP;
196
+ return typeMap[type] ?? UNKNOWN_TYPE;
197
+ };
198
+ /**
199
+ * Create a type mapping for a complex type reference.
200
+ *
201
+ * @since 1.0.0
202
+ * @category type-mapping
203
+ */
204
+ exports.getPrimitiveTypeMapping = getPrimitiveTypeMapping;
205
+ const getComplexTypeMapping = typeName => ({
206
+ effectSchema: typeName,
207
+ queryPath: `EntityPath<Q${typeName}>`,
208
+ tsType: typeName
209
+ });
210
+ /**
211
+ * Create a type mapping for an enum type reference.
212
+ *
213
+ * @since 1.0.0
214
+ * @category type-mapping
215
+ */
216
+ exports.getComplexTypeMapping = getComplexTypeMapping;
217
+ const getEnumTypeMapping = typeName => ({
218
+ effectSchema: typeName,
219
+ queryPath: "StringPath",
220
+ tsType: typeName
221
+ });
222
+ /**
223
+ * Create a type mapping for a navigation property (single entity).
224
+ *
225
+ * @since 1.0.0
226
+ * @category type-mapping
227
+ */
228
+ exports.getEnumTypeMapping = getEnumTypeMapping;
229
+ const getNavigationTypeMapping = typeName => ({
230
+ effectSchema: `Schema.optional(${typeName})`,
231
+ queryPath: `EntityPath<Q${typeName}>`,
232
+ tsType: `${typeName} | undefined`
233
+ });
234
+ /**
235
+ * Create a type mapping for a navigation property (collection).
236
+ *
237
+ * @since 1.0.0
238
+ * @category type-mapping
239
+ */
240
+ exports.getNavigationTypeMapping = getNavigationTypeMapping;
241
+ const getCollectionNavigationTypeMapping = typeName => ({
242
+ effectSchema: `Schema.optional(Schema.Array(${typeName}))`,
243
+ queryPath: `CollectionPath<Q${typeName}>`,
244
+ tsType: `ReadonlyArray<${typeName}> | undefined`
245
+ });
246
+ /**
247
+ * Extract the simple type name from a fully qualified name.
248
+ *
249
+ * @example
250
+ * getSimpleTypeName("ODataDemo.Product") // "Product"
251
+ * getSimpleTypeName("Product") // "Product"
252
+ *
253
+ * @since 1.0.0
254
+ * @category naming
255
+ */
256
+ exports.getCollectionNavigationTypeMapping = getCollectionNavigationTypeMapping;
257
+ const getSimpleTypeName = fqName => {
258
+ const parts = fqName.split(".");
259
+ return parts[parts.length - 1];
260
+ };
261
+ exports.getSimpleTypeName = getSimpleTypeName;
262
+ //# sourceMappingURL=TypeMapper.js.map
@@ -0,0 +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":";;;;;;AAQA;AACA;AACA;AAEA;;;AAGA,MAAMA,YAAY,GAAgB;EAChCC,YAAY,EAAE,gBAAgB;EAC9BC,SAAS,EAAE,YAAY;EACvBC,MAAM,EAAE;CACT;AAED;;;AAGA,MAAMC,WAAW,GAAgC;EAC/C,YAAY,EAAE;IAAEH,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EAC1F,aAAa,EAAE;IAAEF,YAAY,EAAE,gBAAgB;IAAEC,SAAS,EAAE,aAAa;IAAEC,MAAM,EAAE;EAAS,CAAE;EAC9F,UAAU,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EACxF,WAAW,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EACzF,WAAW,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EACzF,WAAW,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EACzF,WAAW,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EACzF,YAAY,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EAC1F,YAAY,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EAC1F,aAAa,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EAC3F,UAAU,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EACxF,UAAU,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EACxF,cAAc,EAAE;IAAEF,YAAY,EAAE,aAAa;IAAEC,SAAS,EAAE,cAAc;IAAEC,MAAM,EAAE;EAAM,CAAE;EAC1F,oBAAoB,EAAE;IAAEF,YAAY,EAAE,aAAa;IAAEC,SAAS,EAAE,cAAc;IAAEC,MAAM,EAAE;EAAM,CAAE;EAChG,YAAY,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ;CACzF;AAED;;;AAGA,MAAME,WAAW,GAAgC;EAC/C,GAAGD,WAAW;EACd,UAAU,EAAE;IAAEH,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EACxF,eAAe,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EAC7F,cAAc,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EAC5F,YAAY,EAAE;IAAEF,YAAY,EAAE,eAAe;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAQ,CAAE;EAC1F,oBAAoB,EAAE;IAAEF,YAAY,EAAE,gBAAgB;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAS,CAAE;EACpG,yBAAyB,EAAE;IAAEF,YAAY,EAAE,gBAAgB;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAS,CAAE;EACzG,sBAAsB,EAAE;IAAEF,YAAY,EAAE,gBAAgB;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAS,CAAE;EACtG,mBAAmB,EAAE;IAAEF,YAAY,EAAE,gBAAgB;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAS,CAAE;EACnG,wBAAwB,EAAE;IAAEF,YAAY,EAAE,gBAAgB;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAS,CAAE;EACxG,qBAAqB,EAAE;IAAEF,YAAY,EAAE,gBAAgB;IAAEC,SAAS,EAAE,YAAY;IAAEC,MAAM,EAAE;EAAS;CACpG;AAcD;;;;;;;;;;AAUO,MAAMG,cAAc,GAAIC,UAAkB,IAAgB;EAC/D,MAAMC,eAAe,GAAGD,UAAU,CAACE,KAAK,CAAC,sBAAsB,CAAC;EAChE,IAAID,eAAe,EAAE;IACnB,OAAO;MACLE,QAAQ,EAAEF,eAAe,CAAC,CAAC,CAAC;MAC5BG,YAAY,EAAE;KACf;EACH;EACA,OAAO;IACLD,QAAQ,EAAEH,UAAU;IACpBI,YAAY,EAAE;GACf;AACH,CAAC;AAED;;;;;;AAAAC,OAAA,CAAAN,cAAA,GAAAA,cAAA;AAMO,MAAMO,eAAe,GAAIC,IAAY,IAAa;EACvD,OAAOA,IAAI,CAACC,UAAU,CAAC,MAAM,CAAC;AAChC,CAAC;AAED;;;;;;AAAAH,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAMO,MAAMG,uBAAuB,GAAGA,CACrCC,OAAqB,EACrBH,IAAY,KACG;EACf,MAAMI,OAAO,GAAGD,OAAO,KAAK,IAAI,GAAGb,WAAW,GAAGC,WAAW;EAC5D,OAAOa,OAAO,CAACJ,IAAI,CAAC,IAAId,YAAY;AACtC,CAAC;AAED;;;;;;AAAAY,OAAA,CAAAI,uBAAA,GAAAA,uBAAA;AAMO,MAAMG,qBAAqB,GAAIC,QAAgB,KAAmB;EACvEnB,YAAY,EAAEmB,QAAQ;EACtBlB,SAAS,EAAE,eAAekB,QAAQ,GAAG;EACrCjB,MAAM,EAAEiB;CACT,CAAC;AAEF;;;;;;AAAAR,OAAA,CAAAO,qBAAA,GAAAA,qBAAA;AAMO,MAAME,kBAAkB,GAAID,QAAgB,KAAmB;EACpEnB,YAAY,EAAEmB,QAAQ;EACtBlB,SAAS,EAAE,YAAY;EACvBC,MAAM,EAAEiB;CACT,CAAC;AAEF;;;;;;AAAAR,OAAA,CAAAS,kBAAA,GAAAA,kBAAA;AAMO,MAAMC,wBAAwB,GAAIF,QAAgB,KAAmB;EAC1EnB,YAAY,EAAE,mBAAmBmB,QAAQ,GAAG;EAC5ClB,SAAS,EAAE,eAAekB,QAAQ,GAAG;EACrCjB,MAAM,EAAE,GAAGiB,QAAQ;CACpB,CAAC;AAEF;;;;;;AAAAR,OAAA,CAAAU,wBAAA,GAAAA,wBAAA;AAMO,MAAMC,kCAAkC,GAAIH,QAAgB,KAAmB;EACpFnB,YAAY,EAAE,gCAAgCmB,QAAQ,IAAI;EAC1DlB,SAAS,EAAE,mBAAmBkB,QAAQ,GAAG;EACzCjB,MAAM,EAAE,iBAAiBiB,QAAQ;CAClC,CAAC;AAEF;;;;;;;;;;AAAAR,OAAA,CAAAW,kCAAA,GAAAA,kCAAA;AAUO,MAAMC,iBAAiB,GAAIC,MAAc,IAAY;EAC1D,MAAMC,KAAK,GAAGD,MAAM,CAACE,KAAK,CAAC,GAAG,CAAC;EAC/B,OAAOD,KAAK,CAACA,KAAK,CAACE,MAAM,GAAG,CAAC,CAAC;AAChC,CAAC;AAAAhB,OAAA,CAAAY,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.generate = exports.GeneratorError = void 0;
7
+ var FileSystem = _interopRequireWildcard(require("@effect/platform/FileSystem"));
8
+ var Path = _interopRequireWildcard(require("@effect/platform/Path"));
9
+ var Effect = _interopRequireWildcard(require("effect/Effect"));
10
+ var Schema = _interopRequireWildcard(require("effect/Schema"));
11
+ var _IndexGenerator = require("./IndexGenerator.js");
12
+ var _ModelsGenerator = require("./ModelsGenerator.js");
13
+ var _PackageGenerator = require("./PackageGenerator.js");
14
+ var _QueryModelsGenerator = require("./QueryModelsGenerator.js");
15
+ var _ServiceFnGenerator = require("./ServiceFnGenerator.js");
16
+ var _ServiceFnPromiseGenerator = require("./ServiceFnPromiseGenerator.js");
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
+ /**
19
+ * Main generator that orchestrates all code generation.
20
+ *
21
+ * @since 1.0.0
22
+ */
23
+
24
+ /**
25
+ * Error thrown during code generation.
26
+ *
27
+ * @since 1.0.0
28
+ * @category errors
29
+ */
30
+ class GeneratorError extends /*#__PURE__*/Schema.TaggedError()("GeneratorError", {
31
+ message: Schema.String,
32
+ cause: /*#__PURE__*/Schema.optional(Schema.Unknown)
33
+ }) {}
34
+ /**
35
+ * Generate all code from a data model.
36
+ *
37
+ * @since 1.0.0
38
+ * @category generation
39
+ */
40
+ exports.GeneratorError = GeneratorError;
41
+ const generate = (dataModel, config) => Effect.gen(function* () {
42
+ const fs = yield* FileSystem.FileSystem;
43
+ const path = yield* Path.Path;
44
+ const outputDir = config.outputDir;
45
+ const serviceName = config.serviceName ?? dataModel.serviceName;
46
+ const packageName = config.packageName ?? `@template/${serviceName.toLowerCase()}-effect`;
47
+ const packageConfig = {
48
+ packageName,
49
+ serviceName
50
+ };
51
+ // Generate tree-shakable service function files
52
+ const serviceResult = (0, _ServiceFnGenerator.generateServiceFns)(dataModel);
53
+ // Generate Promise-based service function files
54
+ const promiseServiceResult = (0, _ServiceFnPromiseGenerator.generatePromiseServiceFns)(dataModel);
55
+ // Generate all files
56
+ const files = [
57
+ // Source files
58
+ {
59
+ path: path.join(outputDir, "src", "Models.ts"),
60
+ content: (0, _ModelsGenerator.generateModels)(dataModel)
61
+ }, {
62
+ path: path.join(outputDir, "src", "QueryModels.ts"),
63
+ content: (0, _QueryModelsGenerator.generateQueryModels)(dataModel)
64
+ },
65
+ // Individual entity service function files (tree-shakable)
66
+ ...serviceResult.entityServices.map(svc => ({
67
+ path: path.join(outputDir, "src", svc.fileName),
68
+ content: svc.content
69
+ })),
70
+ // Promise-based entity service function files
71
+ ...promiseServiceResult.entityServices.map(svc => ({
72
+ path: path.join(outputDir, "src", svc.fileName),
73
+ content: svc.content
74
+ })), {
75
+ path: path.join(outputDir, "src", "index.ts"),
76
+ content: (0, _IndexGenerator.generateIndex)(dataModel)
77
+ },
78
+ // Package configuration files
79
+ {
80
+ path: path.join(outputDir, "package.json"),
81
+ content: (0, _PackageGenerator.generatePackageJson)(dataModel, packageConfig)
82
+ }, {
83
+ path: path.join(outputDir, "tsconfig.json"),
84
+ content: (0, _PackageGenerator.generateTsconfig)()
85
+ }, {
86
+ path: path.join(outputDir, "tsconfig.src.json"),
87
+ content: (0, _PackageGenerator.generateTsconfigSrc)()
88
+ }, {
89
+ path: path.join(outputDir, "tsconfig.test.json"),
90
+ content: (0, _PackageGenerator.generateTsconfigTest)()
91
+ }, {
92
+ path: path.join(outputDir, "tsconfig.build.json"),
93
+ content: (0, _PackageGenerator.generateTsconfigBuild)()
94
+ }, {
95
+ path: path.join(outputDir, "vitest.config.ts"),
96
+ content: (0, _PackageGenerator.generateVitestConfig)()
97
+ }];
98
+ // Create output directories
99
+ yield* fs.makeDirectory(path.join(outputDir, "src"), {
100
+ recursive: true
101
+ }).pipe(Effect.mapError(error => new GeneratorError({
102
+ message: `Failed to create output directory: ${outputDir}/src`,
103
+ cause: error
104
+ })));
105
+ // Write all files
106
+ for (const file of files) {
107
+ // Check if file exists and force is not set
108
+ if (!config.force) {
109
+ const exists = yield* fs.exists(file.path).pipe(Effect.mapError(() => new GeneratorError({
110
+ message: `Failed to check file existence: ${file.path}`
111
+ })));
112
+ if (exists) {
113
+ yield* Effect.logWarning(`Skipping existing file: ${file.path}`);
114
+ continue;
115
+ }
116
+ }
117
+ yield* fs.writeFileString(file.path, file.content).pipe(Effect.mapError(error => new GeneratorError({
118
+ message: `Failed to write file: ${file.path}`,
119
+ cause: error
120
+ })));
121
+ yield* Effect.logInfo(`Generated: ${file.path}`);
122
+ }
123
+ yield* Effect.logInfo(`Generation complete. Output: ${outputDir}`);
124
+ });
125
+ exports.generate = generate;
126
+ //# sourceMappingURL=Generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Generator.js","names":["FileSystem","_interopRequireWildcard","require","Path","Effect","Schema","_IndexGenerator","_ModelsGenerator","_PackageGenerator","_QueryModelsGenerator","_ServiceFnGenerator","_ServiceFnPromiseGenerator","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","GeneratorError","TaggedError","message","String","cause","optional","Unknown","exports","generate","dataModel","config","gen","fs","path","outputDir","serviceName","packageName","toLowerCase","packageConfig","serviceResult","generateServiceFns","promiseServiceResult","generatePromiseServiceFns","files","join","content","generateModels","generateQueryModels","entityServices","map","svc","fileName","generateIndex","generatePackageJson","generateTsconfig","generateTsconfigSrc","generateTsconfigTest","generateTsconfigBuild","generateVitestConfig","makeDirectory","recursive","pipe","mapError","error","file","force","exists","logWarning","writeFileString","logInfo"],"sources":["../../../src/generator/Generator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.generateIndex = void 0;
7
+ var _NamingHelper = require("./NamingHelper.js");
8
+ var _ServiceFnPromiseGenerator = require("./ServiceFnPromiseGenerator.js");
9
+ /**
10
+ * Generate the index.ts file content.
11
+ *
12
+ * @since 1.0.0
13
+ * @category generation
14
+ */
15
+ const generateIndex = dataModel => {
16
+ const lines = [];
17
+ // Header
18
+ lines.push(`/**`);
19
+ lines.push(` * Effect-based OData client for ${dataModel.serviceName} service.`);
20
+ lines.push(` * Generated by odata-effect-gen.`);
21
+ lines.push(` *`);
22
+ lines.push(` * @since 1.0.0`);
23
+ lines.push(` */`);
24
+ lines.push(``);
25
+ // Models
26
+ lines.push(`// Models`);
27
+ lines.push(`export {`);
28
+ const modelExports = [];
29
+ // Enums
30
+ for (const enumType of dataModel.enumTypes.values()) {
31
+ modelExports.push(enumType.name);
32
+ }
33
+ // Complex types
34
+ for (const complexType of dataModel.complexTypes.values()) {
35
+ modelExports.push(complexType.name);
36
+ modelExports.push((0, _NamingHelper.getEditableTypeName)(complexType.name));
37
+ }
38
+ // Entity types
39
+ for (const entityType of dataModel.entityTypes.values()) {
40
+ modelExports.push(entityType.name);
41
+ if (entityType.keys.length > 0) {
42
+ modelExports.push((0, _NamingHelper.getIdTypeName)(entityType.name));
43
+ }
44
+ modelExports.push((0, _NamingHelper.getEditableTypeName)(entityType.name));
45
+ }
46
+ for (let i = 0; i < modelExports.length; i++) {
47
+ const isLast = i === modelExports.length - 1;
48
+ lines.push(` ${modelExports[i]}${isLast ? "" : ","}`);
49
+ }
50
+ lines.push(`} from "./Models.js"`);
51
+ lines.push(``);
52
+ // Re-export OData infrastructure
53
+ const isV4 = dataModel.version === "V4";
54
+ lines.push(`// Re-export OData infrastructure from @odata-effect/odata-effect`);
55
+ lines.push(`export {`);
56
+ lines.push(` // Errors`);
57
+ if (!isV4) {
58
+ lines.push(` SapErrorDetail,`);
59
+ lines.push(` SapErrorResolution,`);
60
+ lines.push(` SapApplication,`);
61
+ lines.push(` SapInnerError,`);
62
+ lines.push(` SapErrorMessage,`);
63
+ lines.push(` SapErrorBody,`);
64
+ lines.push(` SapErrorResponse,`);
65
+ lines.push(` SapError,`);
66
+ }
67
+ lines.push(` ODataError,`);
68
+ lines.push(` EntityNotFoundError,`);
69
+ lines.push(` ParseError,`);
70
+ if (isV4) {
71
+ // V4 exports
72
+ lines.push(` // OData V4`);
73
+ lines.push(` ODataV4,`);
74
+ lines.push(` ODataV4CollectionResponse,`);
75
+ lines.push(` ODataV4ValueResponse,`);
76
+ lines.push(` ODataV4Annotations,`);
77
+ lines.push(` ODataV4ClientConfig,`);
78
+ lines.push(` buildEntityPathV4,`);
79
+ lines.push(` type ODataV4QueryOptions,`);
80
+ lines.push(` type ODataV4RequestOptions,`);
81
+ lines.push(` type ODataV4ClientConfigService,`);
82
+ lines.push(` type PagedResultV4,`);
83
+ } else {
84
+ // V2 exports
85
+ lines.push(` // OData V2`);
86
+ lines.push(` OData,`);
87
+ lines.push(` ODataSingleResponse,`);
88
+ lines.push(` ODataCollectionResponse,`);
89
+ lines.push(` ODataCollectionResponseWithMeta,`);
90
+ lines.push(` ODataValueResponse,`);
91
+ lines.push(` EntityMetadata,`);
92
+ lines.push(` MediaMetadata,`);
93
+ lines.push(` DeferredContent,`);
94
+ lines.push(` ODataClientConfig,`);
95
+ lines.push(` buildEntityPath,`);
96
+ lines.push(` DEFAULT_HEADERS,`);
97
+ lines.push(` MERGE_HEADERS,`);
98
+ lines.push(` type ODataQueryOptions,`);
99
+ lines.push(` type ODataRequestOptions,`);
100
+ lines.push(` type ODataClientConfigService,`);
101
+ lines.push(` type PagedResult,`);
102
+ }
103
+ lines.push(` // Query Builder`);
104
+ lines.push(` FilterExpression,`);
105
+ lines.push(` StringPath,`);
106
+ lines.push(` NumberPath,`);
107
+ lines.push(` BooleanPath,`);
108
+ lines.push(` DateTimePath,`);
109
+ lines.push(` EntityPath,`);
110
+ lines.push(` CollectionPath,`);
111
+ lines.push(` QueryBuilder,`);
112
+ lines.push(` createQueryPaths,`);
113
+ lines.push(` createQueryBuilder,`);
114
+ lines.push(` type FieldToPath,`);
115
+ lines.push(` type QueryPaths,`);
116
+ lines.push(` type SelectableKeys,`);
117
+ lines.push(` type ExpandableKeys,`);
118
+ lines.push(` type BuiltQuery`);
119
+ lines.push(`} from "@odata-effect/odata-effect"`);
120
+ lines.push(``);
121
+ // Individual Entity Services (tree-shakable module namespace re-exports)
122
+ lines.push(`// Individual Entity Services (tree-shakable)`);
123
+ for (const entitySet of dataModel.entitySets.values()) {
124
+ const serviceClassName = (0, _NamingHelper.getServiceClassName)(entitySet.name);
125
+ lines.push(`export * as ${serviceClassName} from "./${serviceClassName}.js"`);
126
+ }
127
+ lines.push(``);
128
+ // Promise-based Entity Services (for non-Effect environments)
129
+ lines.push(`// Promise-based Entity Services (for non-Effect environments)`);
130
+ for (const entitySet of dataModel.entitySets.values()) {
131
+ const promiseServiceName = (0, _ServiceFnPromiseGenerator.getPromiseServiceName)(entitySet.name);
132
+ lines.push(`export * as ${promiseServiceName} from "./${promiseServiceName}.js"`);
133
+ }
134
+ lines.push(``);
135
+ // Query Models
136
+ lines.push(`// Query Models`);
137
+ lines.push(`export {`);
138
+ const queryExports = [];
139
+ // Complex types
140
+ for (const complexType of dataModel.complexTypes.values()) {
141
+ queryExports.push((0, _NamingHelper.getQueryInstanceName)(complexType.name));
142
+ queryExports.push(`type ${(0, _NamingHelper.getQueryInterfaceName)(complexType.name)}`);
143
+ }
144
+ // Entity types
145
+ for (const entityType of dataModel.entityTypes.values()) {
146
+ queryExports.push((0, _NamingHelper.getQueryInstanceName)(entityType.name));
147
+ queryExports.push(`type ${(0, _NamingHelper.getQueryInterfaceName)(entityType.name)}`);
148
+ }
149
+ // Query factories for entity sets
150
+ for (const entitySet of dataModel.entitySets.values()) {
151
+ const entityType = dataModel.entityTypes.get(entitySet.entityTypeFqName);
152
+ if (entityType) {
153
+ queryExports.push((0, _NamingHelper.getQueryFactoryName)(entityType.name));
154
+ }
155
+ }
156
+ for (let i = 0; i < queryExports.length; i++) {
157
+ const isLast = i === queryExports.length - 1;
158
+ lines.push(` ${queryExports[i]}${isLast ? "" : ","}`);
159
+ }
160
+ lines.push(`} from "./QueryModels.js"`);
161
+ return lines.join("\n");
162
+ };
163
+ exports.generateIndex = generateIndex;
164
+ //# sourceMappingURL=IndexGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexGenerator.js","names":["_NamingHelper","require","_ServiceFnPromiseGenerator","generateIndex","dataModel","lines","push","serviceName","modelExports","enumType","enumTypes","values","name","complexType","complexTypes","getEditableTypeName","entityType","entityTypes","keys","length","getIdTypeName","i","isLast","isV4","version","entitySet","entitySets","serviceClassName","getServiceClassName","promiseServiceName","getPromiseServiceName","queryExports","getQueryInstanceName","getQueryInterfaceName","get","entityTypeFqName","getQueryFactoryName","join","exports"],"sources":["../../../src/generator/IndexGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}