@odata-effect/odata-effect-generator 0.1.2 → 0.3.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 (74) hide show
  1. package/README.md +232 -5
  2. package/dist/cjs/Cli.js +5 -1
  3. package/dist/cjs/Cli.js.map +1 -1
  4. package/dist/cjs/generator/Generator.js +35 -25
  5. package/dist/cjs/generator/Generator.js.map +1 -1
  6. package/dist/cjs/generator/IndexGenerator.js +29 -80
  7. package/dist/cjs/generator/IndexGenerator.js.map +1 -1
  8. package/dist/cjs/generator/ModelsGenerator.js +2 -5
  9. package/dist/cjs/generator/ModelsGenerator.js.map +1 -1
  10. package/dist/cjs/generator/NamingHelper.js +4 -1
  11. package/dist/cjs/generator/NamingHelper.js.map +1 -1
  12. package/dist/cjs/generator/NavigationGenerator.js +370 -0
  13. package/dist/cjs/generator/NavigationGenerator.js.map +1 -0
  14. package/dist/cjs/generator/OperationsGenerator.js +384 -0
  15. package/dist/cjs/generator/OperationsGenerator.js.map +1 -0
  16. package/dist/cjs/generator/QueryModelsGenerator.js +2 -2
  17. package/dist/cjs/generator/QueryModelsGenerator.js.map +1 -1
  18. package/dist/cjs/generator/ServiceFnGenerator.js +102 -224
  19. package/dist/cjs/generator/ServiceFnGenerator.js.map +1 -1
  20. package/dist/cjs/index.js +3 -3
  21. package/dist/dts/Cli.d.ts.map +1 -1
  22. package/dist/dts/generator/Generator.d.ts +2 -0
  23. package/dist/dts/generator/Generator.d.ts.map +1 -1
  24. package/dist/dts/generator/IndexGenerator.d.ts.map +1 -1
  25. package/dist/dts/generator/NamingHelper.d.ts.map +1 -1
  26. package/dist/dts/generator/NavigationGenerator.d.ts +55 -0
  27. package/dist/dts/generator/NavigationGenerator.d.ts.map +1 -0
  28. package/dist/dts/generator/OperationsGenerator.d.ts +50 -0
  29. package/dist/dts/generator/OperationsGenerator.d.ts.map +1 -0
  30. package/dist/dts/generator/ServiceFnGenerator.d.ts +10 -11
  31. package/dist/dts/generator/ServiceFnGenerator.d.ts.map +1 -1
  32. package/dist/dts/index.d.ts +4 -4
  33. package/dist/dts/index.d.ts.map +1 -1
  34. package/dist/esm/Cli.js +5 -1
  35. package/dist/esm/Cli.js.map +1 -1
  36. package/dist/esm/generator/Generator.js +35 -25
  37. package/dist/esm/generator/Generator.js.map +1 -1
  38. package/dist/esm/generator/IndexGenerator.js +29 -80
  39. package/dist/esm/generator/IndexGenerator.js.map +1 -1
  40. package/dist/esm/generator/ModelsGenerator.js +2 -5
  41. package/dist/esm/generator/ModelsGenerator.js.map +1 -1
  42. package/dist/esm/generator/NamingHelper.js +4 -1
  43. package/dist/esm/generator/NamingHelper.js.map +1 -1
  44. package/dist/esm/generator/NavigationGenerator.js +362 -0
  45. package/dist/esm/generator/NavigationGenerator.js.map +1 -0
  46. package/dist/esm/generator/OperationsGenerator.js +375 -0
  47. package/dist/esm/generator/OperationsGenerator.js.map +1 -0
  48. package/dist/esm/generator/QueryModelsGenerator.js +2 -2
  49. package/dist/esm/generator/QueryModelsGenerator.js.map +1 -1
  50. package/dist/esm/generator/ServiceFnGenerator.js +102 -224
  51. package/dist/esm/generator/ServiceFnGenerator.js.map +1 -1
  52. package/dist/esm/index.js +4 -4
  53. package/dist/esm/index.js.map +1 -1
  54. package/generator/NavigationGenerator/package.json +6 -0
  55. package/generator/OperationsGenerator/package.json +6 -0
  56. package/package.json +17 -9
  57. package/src/Cli.ts +15 -2
  58. package/src/generator/Generator.ts +44 -23
  59. package/src/generator/IndexGenerator.ts +29 -80
  60. package/src/generator/ModelsGenerator.ts +2 -5
  61. package/src/generator/NamingHelper.ts +8 -1
  62. package/src/generator/NavigationGenerator.ts +485 -0
  63. package/src/generator/OperationsGenerator.ts +507 -0
  64. package/src/generator/QueryModelsGenerator.ts +2 -2
  65. package/src/generator/ServiceFnGenerator.ts +117 -265
  66. package/src/index.ts +4 -4
  67. package/dist/cjs/generator/ServiceFnPromiseGenerator.js +0 -183
  68. package/dist/cjs/generator/ServiceFnPromiseGenerator.js.map +0 -1
  69. package/dist/dts/generator/ServiceFnPromiseGenerator.d.ts +0 -40
  70. package/dist/dts/generator/ServiceFnPromiseGenerator.d.ts.map +0 -1
  71. package/dist/esm/generator/ServiceFnPromiseGenerator.js +0 -175
  72. package/dist/esm/generator/ServiceFnPromiseGenerator.js.map +0 -1
  73. package/generator/ServiceFnPromiseGenerator/package.json +0 -6
  74. package/src/generator/ServiceFnPromiseGenerator.ts +0 -243
@@ -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","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","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","makeOptional","isCollection"],"sources":["../../../src/generator/ModelsGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -87,10 +87,13 @@ const getServiceClassName = entitySetName => {
87
87
  // Remove trailing 's' if present to singularize
88
88
  let singular = entitySetName;
89
89
  if (singular.endsWith("ies")) {
90
+ // "Categories" -> "Category"
90
91
  singular = singular.slice(0, -3) + "y";
91
- } else if (singular.endsWith("es") && !singular.endsWith("ses")) {
92
+ } else if (singular.endsWith("xes") || singular.endsWith("ches") || singular.endsWith("shes") || singular.endsWith("sses") || singular.endsWith("zes")) {
93
+ // "Boxes" -> "Box", "Beaches" -> "Beach", etc.
92
94
  singular = singular.slice(0, -2);
93
95
  } else if (singular.endsWith("s") && !singular.endsWith("ss")) {
96
+ // "Products" -> "Product", "Airlines" -> "Airline"
94
97
  singular = singular.slice(0, -1);
95
98
  }
96
99
  return `${toPascalCase(singular)}Service`;
@@ -1 +1 @@
1
- {"version":3,"file":"NamingHelper.js","names":["toPascalCase","str","replace","_","char","toUpperCase","exports","toCamelCase","pascal","charAt","toLowerCase","slice","toValidIdentifier","test","getPropertyName","odataName","getClassName","getServiceClassName","entitySetName","singular","endsWith","getQueryInterfaceName","typeName","getQueryInstanceName","getQueryFactoryName","getEditableTypeName","getIdTypeName"],"sources":["../../../src/generator/NamingHelper.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NamingHelper.js","names":["toPascalCase","str","replace","_","char","toUpperCase","exports","toCamelCase","pascal","charAt","toLowerCase","slice","toValidIdentifier","test","getPropertyName","odataName","getClassName","getServiceClassName","entitySetName","singular","endsWith","getQueryInterfaceName","typeName","getQueryInstanceName","getQueryFactoryName","getEditableTypeName","getIdTypeName"],"sources":["../../../src/generator/NamingHelper.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,370 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getPathBuildersModuleName = exports.generateNavigations = void 0;
7
+ var _NamingHelper = require("./NamingHelper.js");
8
+ const V2_CONFIG = {
9
+ odataNamespace: "OData",
10
+ clientModule: "ODataClient",
11
+ queryOptionsType: "ODataQueryOptions"
12
+ };
13
+ const V4_CONFIG = {
14
+ odataNamespace: "ODataV4",
15
+ clientModule: "ODataV4Client",
16
+ queryOptionsType: "ODataV4QueryOptions"
17
+ };
18
+ const getVersionConfig = version => version === "V4" ? V4_CONFIG : V2_CONFIG;
19
+ /**
20
+ * Get the path builders module name.
21
+ */
22
+ const getPathBuildersModuleName = () => "PathBuilders";
23
+ /**
24
+ * Collect all navigation properties across all entity types.
25
+ */
26
+ exports.getPathBuildersModuleName = getPathBuildersModuleName;
27
+ const collectAllNavigationProperties = dataModel => {
28
+ const navProps = [];
29
+ for (const entityType of dataModel.entityTypes.values()) {
30
+ for (const navProp of entityType.navigationProperties) {
31
+ const targetTypeName = (0, _NamingHelper.getClassName)(navProp.targetType);
32
+ navProps.push({
33
+ propertyName: navProp.name,
34
+ odataName: navProp.odataName,
35
+ sourceEntityName: entityType.name,
36
+ targetEntityName: targetTypeName,
37
+ isCollection: navProp.isCollection
38
+ });
39
+ }
40
+ }
41
+ return navProps;
42
+ };
43
+ /**
44
+ * Check if a navigation property name has collisions (same name, different source entities).
45
+ */
46
+ const findCollisions = navProps => {
47
+ const collisions = new Set();
48
+ const seen = new Map();
49
+ for (const prop of navProps) {
50
+ const existing = seen.get(prop.propertyName);
51
+ if (existing) {
52
+ // Collision if same name but different source entity
53
+ if (existing.sourceEntityName !== prop.sourceEntityName) {
54
+ collisions.add(prop.propertyName);
55
+ }
56
+ } else {
57
+ seen.set(prop.propertyName, prop);
58
+ }
59
+ }
60
+ return collisions;
61
+ };
62
+ /**
63
+ * Get the function name for a navigation property.
64
+ */
65
+ const getNavFunctionName = (prop, hasCollision) => {
66
+ if (hasCollision) {
67
+ // Qualified name: personTrips, orderTrips
68
+ return (0, _NamingHelper.toCamelCase)(`${prop.sourceEntityName}_${prop.propertyName}`);
69
+ }
70
+ return (0, _NamingHelper.toCamelCase)(prop.propertyName);
71
+ };
72
+ /**
73
+ * Collect derived types for an entity type (for type casting).
74
+ */
75
+ const getDerivedTypes = (baseTypeFqName, dataModel) => {
76
+ const derived = [];
77
+ for (const entityType of dataModel.entityTypes.values()) {
78
+ if (entityType.baseType === baseTypeFqName) {
79
+ derived.push(entityType);
80
+ // Recursively get further derived types
81
+ const furtherDerived = getDerivedTypes(entityType.fqName, dataModel);
82
+ for (const d of furtherDerived) {
83
+ derived.push(d);
84
+ }
85
+ }
86
+ }
87
+ return derived;
88
+ };
89
+ /**
90
+ * Generate navigation builders.
91
+ *
92
+ * @since 1.0.0
93
+ * @category generation
94
+ */
95
+ const generateNavigations = dataModel => {
96
+ const moduleName = getPathBuildersModuleName();
97
+ const content = generatePathBuildersFile(dataModel);
98
+ return {
99
+ navigationFiles: [{
100
+ fileName: `${moduleName}.ts`,
101
+ content
102
+ }]
103
+ };
104
+ };
105
+ /**
106
+ * Generate the PathBuilders.ts file.
107
+ */
108
+ exports.generateNavigations = generateNavigations;
109
+ const generatePathBuildersFile = dataModel => {
110
+ const lines = [];
111
+ const versionConfig = getVersionConfig(dataModel.version);
112
+ // Collect all nav properties and find collisions
113
+ const allNavProps = collectAllNavigationProperties(dataModel);
114
+ const collisions = findCollisions(allNavProps);
115
+ // Collect all entity type names that need to be referenced
116
+ const referencedTypes = collectReferencedTypes(dataModel);
117
+ // Header
118
+ lines.push(`/**`);
119
+ lines.push(` * Type-safe, tree-shakable path builders for OData navigation.`);
120
+ lines.push(` * Generated by odata-effect-gen.`);
121
+ lines.push(` *`);
122
+ lines.push(` * @example`);
123
+ lines.push(` * \`\`\`typescript`);
124
+ lines.push(` * import { pipe } from "effect"`);
125
+ lines.push(` * import { People, byKey, trips, planItems } from "./PathBuilders"`);
126
+ lines.push(` *`);
127
+ lines.push(` * const path = pipe(`);
128
+ lines.push(` * People,`);
129
+ lines.push(` * byKey("russellwhyte"),`);
130
+ lines.push(` * trips,`);
131
+ lines.push(` * byKey(0),`);
132
+ lines.push(` * planItems`);
133
+ lines.push(` * )`);
134
+ lines.push(` * \`\`\``);
135
+ lines.push(` *`);
136
+ lines.push(` * @since 1.0.0`);
137
+ lines.push(` */`);
138
+ lines.push(``);
139
+ // Imports
140
+ lines.push(`import { ${versionConfig.odataNamespace}, ${versionConfig.clientModule}} from "@odata-effect/odata-effect"`);
141
+ const runtimeType = dataModel.version === "V4" ? "ODataV4Runtime" : "ODataRuntime";
142
+ lines.push(`import type { Runtime } from "@odata-effect/odata-effect-promise"`);
143
+ lines.push(`import type { Effect, Schema } from "effect"`);
144
+ lines.push(``);
145
+ // Import model types with Model suffix to avoid collision with entity set names
146
+ if (referencedTypes.size > 0) {
147
+ lines.push(`import type {`);
148
+ const typesList = Array.from(referencedTypes).sort();
149
+ for (let i = 0; i < typesList.length; i++) {
150
+ const isLast = i === typesList.length - 1;
151
+ lines.push(` ${typesList[i]} as ${typesList[i]}Model${isLast ? "" : ","}`);
152
+ }
153
+ lines.push(`} from "./Models"`);
154
+ lines.push(``);
155
+ }
156
+ // Path branded type
157
+ lines.push(`// ============================================================================`);
158
+ lines.push(`// Path Types`);
159
+ lines.push(`// ============================================================================`);
160
+ lines.push(``);
161
+ lines.push(`/**`);
162
+ lines.push(` * Branded path type that tracks the entity type and whether it's a collection.`);
163
+ lines.push(` * This enables type-safe navigation - you can only navigate to properties`);
164
+ lines.push(` * that exist on the current entity type.`);
165
+ lines.push(` *`);
166
+ lines.push(` * @since 1.0.0`);
167
+ lines.push(` * @category types`);
168
+ lines.push(` */`);
169
+ lines.push(`export type Path<TEntity, IsCollection extends boolean = false> = string & {`);
170
+ lines.push(` readonly _entity: TEntity`);
171
+ lines.push(` readonly _collection: IsCollection`);
172
+ lines.push(`}`);
173
+ lines.push(``);
174
+ // Entity set roots (PascalCase, types use Model suffix to avoid collision)
175
+ lines.push(`// ============================================================================`);
176
+ lines.push(`// Entity Set Roots`);
177
+ lines.push(`// ============================================================================`);
178
+ lines.push(``);
179
+ for (const entitySet of dataModel.entitySets.values()) {
180
+ const entityType = dataModel.entityTypes.get(entitySet.entityTypeFqName);
181
+ if (entityType) {
182
+ lines.push(`/**`);
183
+ lines.push(` * Root path for ${entitySet.name} entity set.`);
184
+ lines.push(` *`);
185
+ lines.push(` * @since 1.0.0`);
186
+ lines.push(` * @category entity-sets`);
187
+ lines.push(` */`);
188
+ lines.push(`export const ${entitySet.name}: Path<${entityType.name}Model, true> = "${entitySet.name}" as Path<${entityType.name}Model, true>`);
189
+ lines.push(``);
190
+ }
191
+ }
192
+ // byKey function
193
+ lines.push(`// ============================================================================`);
194
+ lines.push(`// Key Access`);
195
+ lines.push(`// ============================================================================`);
196
+ lines.push(``);
197
+ lines.push(`/**`);
198
+ lines.push(` * Navigate to a specific entity by key.`);
199
+ lines.push(` * Works on any collection path.`);
200
+ lines.push(` *`);
201
+ lines.push(` * @example`);
202
+ lines.push(` * \`\`\`typescript`);
203
+ lines.push(` * pipe(People, byKey("russellwhyte")) // Path<PersonModel, false>`);
204
+ lines.push(` * pipe(Airports, byKey("KSFO")) // Path<AirportModel, false>`);
205
+ lines.push(` * \`\`\``);
206
+ lines.push(` *`);
207
+ lines.push(` * @since 1.0.0`);
208
+ lines.push(` * @category navigation`);
209
+ lines.push(` */`);
210
+ lines.push(`export const byKey = <T>(key: string | number) =>`);
211
+ lines.push(` (base: Path<T, true>): Path<T, false> =>`);
212
+ lines.push(` \`\${base}(\${typeof key === "string" ? \`'\${key}'\` : key})\` as Path<T, false>`);
213
+ lines.push(``);
214
+ // Navigation property functions
215
+ lines.push(`// ============================================================================`);
216
+ lines.push(`// Navigation Properties`);
217
+ lines.push(`// ============================================================================`);
218
+ lines.push(``);
219
+ // Group nav props by source entity for better organization
220
+ const navPropsBySource = new Map();
221
+ for (const prop of allNavProps) {
222
+ const existing = navPropsBySource.get(prop.sourceEntityName) || [];
223
+ existing.push(prop);
224
+ navPropsBySource.set(prop.sourceEntityName, existing);
225
+ }
226
+ for (const [sourceEntity, props] of navPropsBySource) {
227
+ lines.push(`// From ${sourceEntity}`);
228
+ for (const prop of props) {
229
+ const hasCollision = collisions.has(prop.propertyName);
230
+ const fnName = getNavFunctionName(prop, hasCollision);
231
+ const targetType = prop.targetEntityName;
232
+ lines.push(`/**`);
233
+ lines.push(` * Navigate to ${prop.odataName}${prop.isCollection ? " collection" : ""}.`);
234
+ lines.push(` *`);
235
+ lines.push(` * @since 1.0.0`);
236
+ lines.push(` * @category navigation`);
237
+ lines.push(` */`);
238
+ lines.push(`export const ${fnName} = (base: Path<${sourceEntity}Model, false>): Path<${targetType}Model, ${prop.isCollection}> =>`);
239
+ lines.push(` \`\${base}/${prop.odataName}\` as Path<${targetType}Model, ${prop.isCollection}>`);
240
+ lines.push(``);
241
+ }
242
+ }
243
+ // Type casting functions for derived types
244
+ const castFunctions = generateTypeCastFunctions(dataModel);
245
+ if (castFunctions.length > 0) {
246
+ lines.push(`// ============================================================================`);
247
+ lines.push(`// Type Casting (for entity inheritance)`);
248
+ lines.push(`// ============================================================================`);
249
+ lines.push(``);
250
+ for (const castFunction of castFunctions) {
251
+ lines.push(castFunction);
252
+ }
253
+ }
254
+ // Terminal operations (Effect-based)
255
+ lines.push(`// ============================================================================`);
256
+ lines.push(`// Terminal Operations (Effect-based)`);
257
+ lines.push(`// ============================================================================`);
258
+ lines.push(``);
259
+ lines.push(`/**`);
260
+ lines.push(` * Fetch a collection of entities at the given path (Effect-based).`);
261
+ lines.push(` *`);
262
+ lines.push(` * @example`);
263
+ lines.push(` * \`\`\`typescript`);
264
+ lines.push(` * const allPeople = yield* pipe(People, fetchCollection(Person))`);
265
+ lines.push(` * \`\`\``);
266
+ lines.push(` *`);
267
+ lines.push(` * @since 1.0.0`);
268
+ lines.push(` * @category operations`);
269
+ lines.push(` */`);
270
+ lines.push(`export const fetchCollection = <T, I>(schema: Schema.Schema<T, I>) =>`);
271
+ lines.push(` (path: Path<T, true>, options?: ${versionConfig.clientModule}.${versionConfig.queryOptionsType}) =>`);
272
+ lines.push(` ${versionConfig.odataNamespace}.getCollection(path, schema, options)`);
273
+ lines.push(``);
274
+ lines.push(`/**`);
275
+ lines.push(` * Fetch a single entity at the given path (Effect-based).`);
276
+ lines.push(` *`);
277
+ lines.push(` * @example`);
278
+ lines.push(` * \`\`\`typescript`);
279
+ lines.push(` * const person = yield* pipe(People, byKey("russell"), fetchOne(Person))`);
280
+ lines.push(` * \`\`\``);
281
+ lines.push(` *`);
282
+ lines.push(` * @since 1.0.0`);
283
+ lines.push(` * @category operations`);
284
+ lines.push(` */`);
285
+ lines.push(`export const fetchOne = <T, I>(schema: Schema.Schema<T, I>) =>`);
286
+ lines.push(` (path: Path<T, false>, options?: ${versionConfig.clientModule}.${versionConfig.queryOptionsType}) =>`);
287
+ lines.push(` ${versionConfig.odataNamespace}.get(path, schema, options)`);
288
+ lines.push(``);
289
+ // Promise conversion (pipe-friendly)
290
+ lines.push(`// ============================================================================`);
291
+ lines.push(`// Promise Conversion`);
292
+ lines.push(`// ============================================================================`);
293
+ lines.push(``);
294
+ lines.push(`/**`);
295
+ lines.push(` * Convert an Effect to a Promise. Use at the end of a pipe chain.`);
296
+ lines.push(` *`);
297
+ lines.push(` * @example`);
298
+ lines.push(` * \`\`\`typescript`);
299
+ lines.push(` * const myTrips = await pipe(`);
300
+ lines.push(` * People,`);
301
+ lines.push(` * byKey("russell"),`);
302
+ lines.push(` * trips,`);
303
+ lines.push(` * fetchCollection(Trip),`);
304
+ lines.push(` * toPromise(runtime)`);
305
+ lines.push(` * )`);
306
+ lines.push(` * \`\`\``);
307
+ lines.push(` *`);
308
+ lines.push(` * @since 1.0.0`);
309
+ lines.push(` * @category operations`);
310
+ lines.push(` */`);
311
+ lines.push(`export const toPromise = (runtime: Runtime.${runtimeType}) =>`);
312
+ lines.push(` <A, E, R>(effect: Effect.Effect<A, E, R>): Promise<A> =>`);
313
+ lines.push(` runtime.runPromise(effect as any)`);
314
+ lines.push(``);
315
+ return lines.join("\n");
316
+ };
317
+ /**
318
+ * Generate type casting functions for derived types.
319
+ */
320
+ const generateTypeCastFunctions = dataModel => {
321
+ const lines = [];
322
+ const processed = new Set();
323
+ for (const entityType of dataModel.entityTypes.values()) {
324
+ const derivedTypes = getDerivedTypes(entityType.fqName, dataModel);
325
+ for (const derived of derivedTypes) {
326
+ const fnName = `as${derived.name}`;
327
+ if (processed.has(fnName)) continue;
328
+ processed.add(fnName);
329
+ const castPath = `${dataModel.namespace}.${derived.odataName}`;
330
+ lines.push(`/**`);
331
+ lines.push(` * Cast collection to ${derived.name} (filters to derived type).`);
332
+ lines.push(` *`);
333
+ lines.push(` * @since 1.0.0`);
334
+ lines.push(` * @category casting`);
335
+ lines.push(` */`);
336
+ lines.push(`export const ${fnName} = (base: Path<${entityType.name}Model, true>): Path<${derived.name}Model, true> =>`);
337
+ lines.push(` \`\${base}/${castPath}\` as Path<${derived.name}Model, true>`);
338
+ lines.push(``);
339
+ }
340
+ }
341
+ return lines;
342
+ };
343
+ /**
344
+ * Collect all entity type names referenced in paths.
345
+ */
346
+ const collectReferencedTypes = dataModel => {
347
+ const types = new Set();
348
+ // Entity set entity types
349
+ for (const entitySet of dataModel.entitySets.values()) {
350
+ const entityType = dataModel.entityTypes.get(entitySet.entityTypeFqName);
351
+ if (entityType) {
352
+ types.add(entityType.name);
353
+ }
354
+ }
355
+ // Navigation target types
356
+ for (const entityType of dataModel.entityTypes.values()) {
357
+ for (const navProp of entityType.navigationProperties) {
358
+ types.add((0, _NamingHelper.getClassName)(navProp.targetType));
359
+ }
360
+ }
361
+ // Derived types
362
+ for (const entityType of dataModel.entityTypes.values()) {
363
+ const derivedTypes = getDerivedTypes(entityType.fqName, dataModel);
364
+ for (const derived of derivedTypes) {
365
+ types.add(derived.name);
366
+ }
367
+ }
368
+ return types;
369
+ };
370
+ //# sourceMappingURL=NavigationGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationGenerator.js","names":["_NamingHelper","require","V2_CONFIG","odataNamespace","clientModule","queryOptionsType","V4_CONFIG","getVersionConfig","version","getPathBuildersModuleName","exports","collectAllNavigationProperties","dataModel","navProps","entityType","entityTypes","values","navProp","navigationProperties","targetTypeName","getClassName","targetType","push","propertyName","name","odataName","sourceEntityName","targetEntityName","isCollection","findCollisions","collisions","Set","seen","Map","prop","existing","get","add","set","getNavFunctionName","hasCollision","toCamelCase","getDerivedTypes","baseTypeFqName","derived","baseType","furtherDerived","fqName","d","generateNavigations","moduleName","content","generatePathBuildersFile","navigationFiles","fileName","lines","versionConfig","allNavProps","referencedTypes","collectReferencedTypes","runtimeType","size","typesList","Array","from","sort","i","length","isLast","entitySet","entitySets","entityTypeFqName","navPropsBySource","sourceEntity","props","has","fnName","castFunctions","generateTypeCastFunctions","castFunction","join","processed","derivedTypes","castPath","namespace","types"],"sources":["../../../src/generator/NavigationGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}