@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
@@ -5,265 +5,143 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.generateServiceFns = void 0;
7
7
  var _NamingHelper = require("./NamingHelper.js");
8
- const V2_CONFIG = {
9
- odataNamespace: "OData",
10
- buildEntityPath: "buildEntityPath",
11
- queryOptionsType: "ODataQueryOptions",
12
- clientConfigTag: "ODataClientConfig"
13
- };
14
- const V4_CONFIG = {
15
- odataNamespace: "ODataV4",
16
- buildEntityPath: "buildEntityPathV4",
17
- queryOptionsType: "ODataV4QueryOptions",
18
- clientConfigTag: "ODataV4ClientConfig"
19
- };
20
- const getVersionConfig = version => version === "V4" ? V4_CONFIG : V2_CONFIG;
21
8
  /**
22
- * Generate all tree-shakable service function files.
9
+ * Generate the Services.ts file using crud factory.
23
10
  *
24
11
  * @since 1.0.0
25
12
  * @category generation
26
13
  */
27
14
  const generateServiceFns = dataModel => {
28
- const entityServices = [];
29
- // Generate individual entity service files
30
- for (const entitySet of dataModel.entitySets.values()) {
31
- const entityType = dataModel.entityTypes.get(entitySet.entityTypeFqName);
32
- if (entityType) {
33
- const serviceClassName = (0, _NamingHelper.getServiceClassName)(entitySet.name);
34
- entityServices.push({
35
- fileName: `${serviceClassName}.ts`,
36
- content: generateEntityServiceFnFile(entitySet, entityType, dataModel)
37
- });
38
- }
39
- }
15
+ const content = generateServicesFile(dataModel);
40
16
  return {
41
- entityServices
17
+ servicesFile: {
18
+ fileName: "Services.ts",
19
+ content
20
+ }
42
21
  };
43
22
  };
44
23
  /**
45
- * Generate a single entity service function file.
24
+ * Generate the Services.ts file content.
46
25
  */
47
26
  exports.generateServiceFns = generateServiceFns;
48
- const generateEntityServiceFnFile = (entitySet, entityType, dataModel) => {
27
+ const generateServicesFile = dataModel => {
49
28
  const lines = [];
50
- const versionConfig = getVersionConfig(dataModel.version);
51
- const serviceClassName = (0, _NamingHelper.getServiceClassName)(entitySet.name);
52
- const entityName = entityType.name;
53
- const idTypeName = (0, _NamingHelper.getIdTypeName)(entityName);
54
- const editableName = (0, _NamingHelper.getEditableTypeName)(entityName);
55
- const hasKeys = entityType.keys.length > 0;
56
29
  const isV4 = dataModel.version === "V4";
57
- // Header and imports
30
+ const crudImportPath = isV4 ? "@odata-effect/odata-effect/CrudV4" : "@odata-effect/odata-effect/Crud";
31
+ // Collect all entity sets with their types
32
+ const entitySets = [];
33
+ for (const entitySet of dataModel.entitySets.values()) {
34
+ const entityType = dataModel.entityTypes.get(entitySet.entityTypeFqName);
35
+ if (entityType) {
36
+ entitySets.push({
37
+ entitySet,
38
+ entityType
39
+ });
40
+ }
41
+ }
42
+ // Header
58
43
  lines.push(`/**`);
59
- lines.push(` * Tree-shakable ${entityName} service functions for ${dataModel.serviceName} OData ${dataModel.version}.`);
44
+ lines.push(` * Entity services for ${dataModel.serviceName} OData ${dataModel.version}.`);
60
45
  lines.push(` * Generated by odata-effect-gen.`);
61
46
  lines.push(` *`);
62
- lines.push(` * @example`);
63
- lines.push(` * \`\`\`ts`);
64
- lines.push(` * // Namespace import - nice autocomplete, tree-shakable`);
65
- lines.push(` * import { ${serviceClassName} } from "@template/${dataModel.serviceName.toLowerCase()}-effect"`);
66
- lines.push(` * const items = yield* ${serviceClassName}.getAll()`);
67
- lines.push(` *`);
68
- lines.push(` * // Direct import - maximum tree-shaking`);
69
- lines.push(` * import { getAll } from "@template/${dataModel.serviceName.toLowerCase()}-effect/${serviceClassName}"`);
70
- lines.push(` * const items = yield* getAll()`);
71
- lines.push(` * \`\`\``);
47
+ lines.push(` * Uses the crud factory for minimal generated code.`);
72
48
  lines.push(` *`);
73
49
  lines.push(` * @since 1.0.0`);
74
50
  lines.push(` */`);
75
- lines.push(`import type * as Effect from "effect/Effect"`);
76
- lines.push(`import * as Schema from "effect/Schema"`);
77
- lines.push(`import type { HttpClient } from "@effect/platform"`);
78
- lines.push(`import type * as HttpClientError from "@effect/platform/HttpClientError"`);
79
- lines.push(`import type * as HttpBody from "@effect/platform/HttpBody"`);
51
+ lines.push(`import { crud } from "${crudImportPath}"`);
80
52
  lines.push(``);
81
- // Import models
82
- lines.push(`import {`);
83
- lines.push(` ${entityName},`);
84
- if (hasKeys) {
85
- lines.push(` type ${idTypeName},`);
86
- }
87
- lines.push(` ${editableName}`);
88
- lines.push(`} from "./Models.js"`);
89
- lines.push(``);
90
- // Import OData infrastructure (version-specific) using subpath imports for tree-shaking
91
- if (isV4) {
92
- lines.push(`import * as ${versionConfig.odataNamespace} from "@odata-effect/odata-effect/ODataV4"`);
93
- lines.push(`import {`);
94
- lines.push(` type ${versionConfig.clientConfigTag},`);
95
- lines.push(` ${versionConfig.buildEntityPath},`);
96
- lines.push(` type ${versionConfig.queryOptionsType}`);
97
- lines.push(`} from "@odata-effect/odata-effect/ODataV4Client"`);
98
- } else {
99
- lines.push(`import * as ${versionConfig.odataNamespace} from "@odata-effect/odata-effect/OData"`);
100
- lines.push(`import {`);
101
- lines.push(` type ${versionConfig.clientConfigTag},`);
102
- lines.push(` ${versionConfig.buildEntityPath},`);
103
- lines.push(` type ${versionConfig.queryOptionsType}`);
104
- lines.push(`} from "@odata-effect/odata-effect/ODataClient"`);
53
+ // Import all entity types
54
+ const modelImports = [];
55
+ for (const {
56
+ entityType
57
+ } of entitySets) {
58
+ modelImports.push(entityType.name);
59
+ if (entityType.keys.length > 0) {
60
+ modelImports.push(`type ${(0, _NamingHelper.getIdTypeName)(entityType.name)}`);
61
+ }
62
+ modelImports.push((0, _NamingHelper.getEditableTypeName)(entityType.name));
105
63
  }
106
64
  lines.push(`import {`);
107
- if (!isV4) {
108
- lines.push(` type SapError,`);
65
+ for (let i = 0; i < modelImports.length; i++) {
66
+ const isLast = i === modelImports.length - 1;
67
+ lines.push(` ${modelImports[i]}${isLast ? "" : ","}`);
109
68
  }
110
- lines.push(` type ODataError,`);
111
- lines.push(` type ParseError`);
112
- lines.push(`} from "@odata-effect/odata-effect/Errors"`);
69
+ lines.push(`} from "./Models"`);
113
70
  lines.push(``);
114
- // Service error type
115
- lines.push(`// ============================================================================`);
116
- lines.push(`// Types`);
117
- lines.push(`// ============================================================================`);
71
+ // Re-export types from the crud module
72
+ lines.push(`// Re-export types for convenience`);
73
+ lines.push(`export type { CrudError, CrudContext, CrudService } from "${crudImportPath}"`);
118
74
  lines.push(``);
119
- lines.push(`/**`);
120
- lines.push(` * Error type for ${entityName} service operations.`);
121
- lines.push(` *`);
122
- lines.push(` * @since 1.0.0`);
123
- lines.push(` * @category errors`);
124
- lines.push(` */`);
125
- lines.push(`export type ${serviceClassName}Error =`);
126
- lines.push(` | HttpClientError.HttpClientError`);
127
- lines.push(` | HttpBody.HttpBodyError`);
128
- lines.push(` | ParseError`);
129
- if (!isV4) {
130
- lines.push(` | SapError`);
131
- }
132
- lines.push(` | ODataError`);
133
- lines.push(``);
134
- // Dependencies type
135
- lines.push(`/**`);
136
- lines.push(` * Dependencies required for ${entityName} service operations.`);
137
- lines.push(` *`);
138
- lines.push(` * @since 1.0.0`);
139
- lines.push(` * @category context`);
140
- lines.push(` */`);
141
- lines.push(`export type ${serviceClassName}Context = ${versionConfig.clientConfigTag} | HttpClient.HttpClient`);
142
- lines.push(``);
143
- // ID normalizer (if entity has keys)
144
- if (hasKeys) {
145
- lines.push(`// ============================================================================`);
146
- lines.push(`// Internal Helpers`);
147
- lines.push(`// ============================================================================`);
148
- lines.push(``);
149
- const normalizeIdFn = `normalizeId`;
150
- lines.push(`const ${normalizeIdFn} = (id: ${idTypeName}): string =>`);
151
- if (entityType.keys.length === 1) {
152
- const keyProp = entityType.keys[0];
153
- const keyTsType = keyProp.typeMapping.tsType;
154
- const primitiveCheck = keyTsType === "number" ? "number" : "string";
155
- lines.push(` typeof id === "${primitiveCheck}" ? String(id) : String(id.${keyProp.name})`);
156
- } else {
157
- const keyParts = entityType.keys.map(k => `${k.odataName}='\${String(id.${k.name})}'`).join(",");
158
- lines.push(` typeof id === "string" ? id : \`${keyParts}\``);
159
- }
160
- lines.push(``);
161
- }
162
- // Standalone functions
75
+ // Generate each service
163
76
  lines.push(`// ============================================================================`);
164
- lines.push(`// Standalone Tree-Shakable Functions`);
77
+ lines.push(`// Entity Services`);
165
78
  lines.push(`// ============================================================================`);
166
79
  lines.push(``);
167
- // getAll
168
- lines.push(`/**`);
169
- lines.push(` * Fetch all ${entityName} entities.`);
170
- lines.push(` *`);
171
- lines.push(` * @since 1.0.0`);
172
- lines.push(` * @category operations`);
173
- lines.push(` */`);
174
- lines.push(`export const getAll = (`);
175
- lines.push(` options?: ${versionConfig.queryOptionsType}`);
176
- lines.push(`): Effect.Effect<`);
177
- lines.push(` ReadonlyArray<${entityName}>,`);
178
- lines.push(` ${serviceClassName}Error,`);
179
- lines.push(` ${serviceClassName}Context`);
180
- lines.push(`> =>`);
181
- lines.push(` ${versionConfig.odataNamespace}.getCollection("${entitySet.name}", ${entityName}, options)`);
182
- lines.push(``);
183
- // getById (if entity has keys)
184
- if (hasKeys) {
185
- const keyObj = entityType.keys.length === 1 ? `{ ${entityType.keys[0].odataName}: normalizeId(id) }` : `normalizeId(id)`;
80
+ for (const {
81
+ entitySet,
82
+ entityType
83
+ } of entitySets) {
84
+ const serviceClassName = (0, _NamingHelper.getServiceClassName)(entitySet.name);
85
+ const entityName = entityType.name;
86
+ const editableName = (0, _NamingHelper.getEditableTypeName)(entityName);
87
+ const hasKeys = entityType.keys.length > 0;
186
88
  lines.push(`/**`);
187
- lines.push(` * Fetch a single ${entityName} by ID.`);
89
+ lines.push(` * CRUD service for ${entityName} entities.`);
188
90
  lines.push(` *`);
189
91
  lines.push(` * @since 1.0.0`);
190
- lines.push(` * @category operations`);
92
+ lines.push(` * @category services`);
191
93
  lines.push(` */`);
192
- lines.push(`export const getById = (`);
193
- lines.push(` id: ${idTypeName}`);
194
- lines.push(`): Effect.Effect<`);
195
- lines.push(` ${entityName},`);
196
- lines.push(` ${serviceClassName}Error,`);
197
- lines.push(` ${serviceClassName}Context`);
198
- lines.push(`> =>`);
199
- lines.push(` ${versionConfig.odataNamespace}.get(`);
200
- lines.push(` ${versionConfig.buildEntityPath}("${entitySet.name}", ${keyObj}),`);
201
- lines.push(` ${entityName}`);
202
- lines.push(` )`);
203
- lines.push(``);
204
- }
205
- // create
206
- lines.push(`/**`);
207
- lines.push(` * Create a new ${entityName} entity.`);
208
- lines.push(` *`);
209
- lines.push(` * @since 1.0.0`);
210
- lines.push(` * @category operations`);
211
- lines.push(` */`);
212
- lines.push(`export const create = (`);
213
- lines.push(` entity: ${editableName}`);
214
- lines.push(`): Effect.Effect<`);
215
- lines.push(` ${entityName},`);
216
- lines.push(` ${serviceClassName}Error,`);
217
- lines.push(` ${serviceClassName}Context`);
218
- lines.push(`> =>`);
219
- lines.push(` ${versionConfig.odataNamespace}.post("${entitySet.name}", entity, ${editableName}, ${entityName})`);
220
- lines.push(``);
221
- // update (if entity has keys)
222
- if (hasKeys) {
223
- const keyObj = entityType.keys.length === 1 ? `{ ${entityType.keys[0].odataName}: normalizeId(id) }` : `normalizeId(id)`;
224
- lines.push(`/**`);
225
- lines.push(` * Update an existing ${entityName} entity.`);
226
- lines.push(` *`);
227
- lines.push(` * @since 1.0.0`);
228
- lines.push(` * @category operations`);
229
- lines.push(` */`);
230
- lines.push(`export const update = (`);
231
- lines.push(` id: ${idTypeName},`);
232
- lines.push(` entity: Partial<${editableName}>`);
233
- lines.push(`): Effect.Effect<`);
234
- lines.push(` void,`);
235
- lines.push(` ${serviceClassName}Error,`);
236
- lines.push(` ${serviceClassName}Context`);
237
- lines.push(`> =>`);
238
- lines.push(` ${versionConfig.odataNamespace}.patch(`);
239
- lines.push(` ${versionConfig.buildEntityPath}("${entitySet.name}", ${keyObj}),`);
240
- lines.push(` entity,`);
241
- lines.push(` Schema.partial(${editableName})`);
242
- lines.push(` )`);
243
- lines.push(``);
244
- // delete
245
- lines.push(`/**`);
246
- lines.push(` * Delete a ${entityName} entity.`);
247
- lines.push(` *`);
248
- lines.push(` * @since 1.0.0`);
249
- lines.push(` * @category operations`);
250
- lines.push(` */`);
251
- lines.push(`export const del = (`);
252
- lines.push(` id: ${idTypeName}`);
253
- lines.push(`): Effect.Effect<`);
254
- lines.push(` void,`);
255
- lines.push(` ${serviceClassName}Error,`);
256
- lines.push(` ${serviceClassName}Context`);
257
- lines.push(`> =>`);
258
- lines.push(` ${versionConfig.odataNamespace}.del(`);
259
- lines.push(` ${versionConfig.buildEntityPath}("${entitySet.name}", ${keyObj})`);
260
- lines.push(` )`);
261
- lines.push(``);
262
- // Alias for nice naming
263
- lines.push(`// Alias for nice naming`);
264
- lines.push(`export { del as delete }`);
94
+ if (hasKeys) {
95
+ lines.push(`export const ${serviceClassName} = crud({`);
96
+ lines.push(` path: "${entitySet.name}",`);
97
+ lines.push(` schema: ${entityName},`);
98
+ lines.push(` editableSchema: ${editableName},`);
99
+ lines.push(` idToKey: ${generateIdToKeyFunction(entityType, dataModel.version)}`);
100
+ lines.push(`})`);
101
+ } else {
102
+ // Entity without keys - can only getAll and create
103
+ lines.push(`export const ${serviceClassName} = crud({`);
104
+ lines.push(` path: "${entitySet.name}",`);
105
+ lines.push(` schema: ${entityName},`);
106
+ lines.push(` editableSchema: ${editableName},`);
107
+ lines.push(` idToKey: (_id: never) => { throw new Error("Entity has no keys") }`);
108
+ lines.push(`})`);
109
+ }
265
110
  lines.push(``);
266
111
  }
267
112
  return lines.join("\n");
268
113
  };
114
+ /**
115
+ * Generate the idToKey function for an entity type.
116
+ */
117
+ const generateIdToKeyFunction = (entityType, version) => {
118
+ const idTypeName = (0, _NamingHelper.getIdTypeName)(entityType.name);
119
+ const isV4 = version === "V4";
120
+ if (entityType.keys.length === 1) {
121
+ const keyProp = entityType.keys[0];
122
+ const keyTsType = keyProp.typeMapping.tsType;
123
+ const primitiveCheck = keyTsType === "number" ? "number" : "string";
124
+ if (isV4) {
125
+ // V4 can use number keys directly
126
+ if (keyTsType === "number") {
127
+ return `(id: ${idTypeName}) => typeof id === "number" ? id : id.${keyProp.name}`;
128
+ } else {
129
+ return `(id: ${idTypeName}) => typeof id === "string" ? { ${keyProp.odataName}: id } : { ${keyProp.odataName}: id.${keyProp.name} }`;
130
+ }
131
+ } else {
132
+ // V2 needs string keys
133
+ return `(id: ${idTypeName}) => typeof id === "${primitiveCheck}" ? { ${keyProp.odataName}: String(id) } : { ${keyProp.odataName}: String(id.${keyProp.name}) }`;
134
+ }
135
+ } else {
136
+ // Composite key
137
+ const keyMapping = entityType.keys.map(k => {
138
+ if (isV4) {
139
+ return `${k.odataName}: id.${k.name}`;
140
+ } else {
141
+ return `${k.odataName}: String(id.${k.name})`;
142
+ }
143
+ }).join(", ");
144
+ return `(id: ${idTypeName}) => ({ ${keyMapping} })`;
145
+ }
146
+ };
269
147
  //# sourceMappingURL=ServiceFnGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceFnGenerator.js","names":["_NamingHelper","require","V2_CONFIG","odataNamespace","buildEntityPath","queryOptionsType","clientConfigTag","V4_CONFIG","getVersionConfig","version","generateServiceFns","dataModel","entityServices","entitySet","entitySets","values","entityType","entityTypes","get","entityTypeFqName","serviceClassName","getServiceClassName","name","push","fileName","content","generateEntityServiceFnFile","exports","lines","versionConfig","entityName","idTypeName","getIdTypeName","editableName","getEditableTypeName","hasKeys","keys","length","isV4","serviceName","toLowerCase","normalizeIdFn","keyProp","keyTsType","typeMapping","tsType","primitiveCheck","keyParts","map","k","odataName","join","keyObj"],"sources":["../../../src/generator/ServiceFnGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ServiceFnGenerator.js","names":["_NamingHelper","require","generateServiceFns","dataModel","content","generateServicesFile","servicesFile","fileName","exports","lines","isV4","version","crudImportPath","entitySets","entitySet","values","entityType","entityTypes","get","entityTypeFqName","push","serviceName","modelImports","name","keys","length","getIdTypeName","getEditableTypeName","i","isLast","serviceClassName","getServiceClassName","entityName","editableName","hasKeys","generateIdToKeyFunction","join","idTypeName","keyProp","keyTsType","typeMapping","tsType","primitiveCheck","odataName","keyMapping","map","k"],"sources":["../../../src/generator/ServiceFnGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/cjs/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.bin = exports.XmlParser = exports.TypeMapper = exports.ServiceFnPromiseGenerator = exports.ServiceFnGenerator = exports.QueryModelsGenerator = exports.PackageGenerator = exports.NamingHelper = exports.ModelsGenerator = exports.IndexGenerator = exports.Generator = exports.EdmxSchema = exports.Digester = exports.DataModel = exports.Cli = void 0;
6
+ exports.bin = exports.XmlParser = exports.TypeMapper = exports.ServiceFnGenerator = exports.QueryModelsGenerator = exports.PackageGenerator = exports.NavigationGenerator = exports.NamingHelper = exports.ModelsGenerator = exports.IndexGenerator = exports.Generator = exports.EdmxSchema = exports.Digester = exports.DataModel = exports.Cli = void 0;
7
7
  var _Cli = _interopRequireWildcard(require("./Cli.js"));
8
8
  exports.Cli = _Cli;
9
9
  var _bin = _interopRequireWildcard(require("./bin.js"));
@@ -26,8 +26,8 @@ var _QueryModelsGenerator = _interopRequireWildcard(require("./generator/QueryMo
26
26
  exports.QueryModelsGenerator = _QueryModelsGenerator;
27
27
  var _ServiceFnGenerator = _interopRequireWildcard(require("./generator/ServiceFnGenerator.js"));
28
28
  exports.ServiceFnGenerator = _ServiceFnGenerator;
29
- var _ServiceFnPromiseGenerator = _interopRequireWildcard(require("./generator/ServiceFnPromiseGenerator.js"));
30
- exports.ServiceFnPromiseGenerator = _ServiceFnPromiseGenerator;
29
+ var _NavigationGenerator = _interopRequireWildcard(require("./generator/NavigationGenerator.js"));
30
+ exports.NavigationGenerator = _NavigationGenerator;
31
31
  var _DataModel = _interopRequireWildcard(require("./model/DataModel.js"));
32
32
  exports.DataModel = _DataModel;
33
33
  var _EdmxSchema = _interopRequireWildcard(require("./parser/EdmxSchema.js"));
@@ -1 +1 @@
1
- {"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../../src/Cli.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAiGvC;;;;;GAKG;AACH,eAAO,MAAM,GAAG,sKAGd,CAAA"}
1
+ {"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../../src/Cli.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AA8GvC;;;;;GAKG;AACH,eAAO,MAAM,GAAG,sKAGd,CAAA"}
@@ -19,6 +19,8 @@ export interface GeneratorConfig {
19
19
  readonly packageName?: string;
20
20
  readonly serviceName?: string;
21
21
  readonly force?: boolean;
22
+ /** Generate only source files directly in outputDir (no package.json, tsconfig, src/ subdirectory) */
23
+ readonly filesOnly?: boolean;
22
24
  }
23
25
  declare const GeneratorError_base: Schema.TaggedErrorClass<GeneratorError, "GeneratorError", {
24
26
  readonly _tag: Schema.tag<"GeneratorError">;
@@ -1 +1 @@
1
- {"version":3,"file":"Generator.d.ts","sourceRoot":"","sources":["../../../src/generator/Generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAgBtD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACzB;;;;;;;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,mBAMnC;CAAG;AAUJ;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,WAAW,SAAS,EACpB,QAAQ,eAAe,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAiHpE,CAAA"}
1
+ {"version":3,"file":"Generator.d.ts","sourceRoot":"","sources":["../../../src/generator/Generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAiBtD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,sGAAsG;IACtG,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;;;;;;;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,mBAMnC;CAAG;AAUJ;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,WAAW,SAAS,EACpB,QAAQ,eAAe,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAmIpE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"IndexGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/IndexGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAWtD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,WAAW,SAAS,KAAG,MAsKpD,CAAA"}
1
+ {"version":3,"file":"IndexGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/IndexGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAYtD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,WAAW,SAAS,KAAG,MAkHpD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"NamingHelper.d.ts","sourceRoot":"","sources":["../../../src/generator/NamingHelper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAI1C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAGzC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,KAAG,MAO/C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,MAEnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,MAEhD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,KAAG,MAW3D,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,MAExD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,MAEvD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,MAEtD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,MAEtD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,MAEhD,CAAA"}
1
+ {"version":3,"file":"NamingHelper.d.ts","sourceRoot":"","sources":["../../../src/generator/NamingHelper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAI1C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAGzC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,KAAG,MAO/C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,MAEnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,MAEhD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,KAAG,MAkB3D,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,MAExD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,MAEvD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,MAEtD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,MAEtD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,MAEhD,CAAA"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Generator for type-safe, tree-shakable navigation path builders.
3
+ *
4
+ * Generates branded path types and navigation functions that can be composed
5
+ * with pipe() for type-safe OData path construction.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { pipe } from "effect"
10
+ * import { People, byKey, trips, planItems, asFlight } from "./PathBuilders"
11
+ *
12
+ * const path = pipe(
13
+ * People,
14
+ * byKey("russellwhyte"),
15
+ * trips,
16
+ * byKey(0),
17
+ * planItems,
18
+ * asFlight
19
+ * )
20
+ * ```
21
+ *
22
+ * @since 1.0.0
23
+ */
24
+ import type { DataModel } from "../model/DataModel.js";
25
+ /**
26
+ * Get the path builders module name.
27
+ */
28
+ export declare const getPathBuildersModuleName: () => string;
29
+ /**
30
+ * Generated navigation file.
31
+ *
32
+ * @since 1.0.0
33
+ * @category types
34
+ */
35
+ export interface GeneratedNavigationFile {
36
+ readonly fileName: string;
37
+ readonly content: string;
38
+ }
39
+ /**
40
+ * Result of navigation generation.
41
+ *
42
+ * @since 1.0.0
43
+ * @category types
44
+ */
45
+ export interface NavigationGenerationResult {
46
+ readonly navigationFiles: ReadonlyArray<GeneratedNavigationFile>;
47
+ }
48
+ /**
49
+ * Generate navigation builders.
50
+ *
51
+ * @since 1.0.0
52
+ * @category generation
53
+ */
54
+ export declare const generateNavigations: (dataModel: DataModel) => NavigationGenerationResult;
55
+ //# sourceMappingURL=NavigationGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/NavigationGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,uBAAuB,CAAA;AA2BvE;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAO,MAAwB,CAAA;AAErE;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAA;CACjE;AA8FD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,SAAS,KAAG,0BAU1D,CAAA"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Generator for OData operations (FunctionImports, Functions, Actions).
3
+ *
4
+ * OData V2: FunctionImports
5
+ * OData V4: Functions (GET, no side effects) and Actions (POST, with side effects)
6
+ *
7
+ * @since 1.0.0
8
+ */
9
+ import type { DataModel, OperationModel } from "../model/DataModel.js";
10
+ /**
11
+ * Get the function name for an operation.
12
+ *
13
+ * @since 1.0.0
14
+ * @category naming
15
+ */
16
+ export declare const getOperationFunctionName: (operation: OperationModel) => string;
17
+ /**
18
+ * Get the operations module name.
19
+ *
20
+ * @since 1.0.0
21
+ * @category naming
22
+ */
23
+ export declare const getOperationsModuleName: () => string;
24
+ /**
25
+ * Generated operations file.
26
+ *
27
+ * @since 1.0.0
28
+ * @category types
29
+ */
30
+ export interface GeneratedOperationsFile {
31
+ readonly fileName: string;
32
+ readonly content: string;
33
+ }
34
+ /**
35
+ * Result of operations generation.
36
+ *
37
+ * @since 1.0.0
38
+ * @category types
39
+ */
40
+ export interface OperationsGenerationResult {
41
+ readonly operationsFile: GeneratedOperationsFile | null;
42
+ }
43
+ /**
44
+ * Generate the operations file.
45
+ *
46
+ * @since 1.0.0
47
+ * @category generation
48
+ */
49
+ export declare const generateOperations: (dataModel: DataModel) => OperationsGenerationResult;
50
+ //# sourceMappingURL=OperationsGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationsGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/OperationsGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AA2BtE;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,WAAW,cAAc,KAAG,MAEpE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAO,MAAsB,CAAA;AAEjE;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,cAAc,EAAE,uBAAuB,GAAG,IAAI,CAAA;CACxD;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,SAAS,KAAG,0BAgBzD,CAAA"}
@@ -1,37 +1,36 @@
1
1
  /**
2
- * Generator for tree-shakable service functions.
2
+ * Generator for entity services using the crud factory.
3
3
  *
4
- * This module generates standalone functions that can be tree-shaken.
5
- * Each entity service is a module of standalone functions that use
6
- * the tree-shakable OData functions directly.
4
+ * This module generates a single Services.ts file that creates CRUD services
5
+ * for all entity sets using the crud factory from @odata-effect/odata-effect.
7
6
  *
8
7
  * @since 1.0.0
9
8
  */
10
9
  import type { DataModel } from "../model/DataModel.js";
11
10
  /**
12
- * Generated service function file.
11
+ * Generated service file.
13
12
  *
14
13
  * @since 1.0.0
15
14
  * @category types
16
15
  */
17
- export interface GeneratedServiceFnFile {
16
+ export interface GeneratedServiceFile {
18
17
  readonly fileName: string;
19
18
  readonly content: string;
20
19
  }
21
20
  /**
22
- * Result of service function generation.
21
+ * Result of service generation.
23
22
  *
24
23
  * @since 1.0.0
25
24
  * @category types
26
25
  */
27
- export interface ServiceFnGenerationResult {
28
- readonly entityServices: ReadonlyArray<GeneratedServiceFnFile>;
26
+ export interface ServiceGenerationResult {
27
+ readonly servicesFile: GeneratedServiceFile;
29
28
  }
30
29
  /**
31
- * Generate all tree-shakable service function files.
30
+ * Generate the Services.ts file using crud factory.
32
31
  *
33
32
  * @since 1.0.0
34
33
  * @category generation
35
34
  */
36
- export declare const generateServiceFns: (dataModel: DataModel) => ServiceFnGenerationResult;
35
+ export declare const generateServiceFns: (dataModel: DataModel) => ServiceGenerationResult;
37
36
  //# sourceMappingURL=ServiceFnGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceFnGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/ServiceFnGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,SAAS,EAAmC,MAAM,uBAAuB,CAAA;AA8BvF;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAA;CAC/D;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,SAAS,KAAG,yBAgBzD,CAAA"}
1
+ {"version":3,"file":"ServiceFnGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/ServiceFnGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAmC,MAAM,uBAAuB,CAAA;AAIvF;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;CAC5C;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,SAAS,KAAG,uBAQzD,CAAA"}