@odata-effect/odata-effect-generator 0.1.1 → 0.2.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 (58) hide show
  1. package/README.md +232 -9
  2. package/dist/cjs/Cli.js +6 -2
  3. package/dist/cjs/Cli.js.map +1 -1
  4. package/dist/cjs/generator/Generator.js +33 -15
  5. package/dist/cjs/generator/Generator.js.map +1 -1
  6. package/dist/cjs/generator/IndexGenerator.js +19 -73
  7. package/dist/cjs/generator/IndexGenerator.js.map +1 -1
  8. package/dist/cjs/generator/NamingHelper.js +4 -1
  9. package/dist/cjs/generator/NamingHelper.js.map +1 -1
  10. package/dist/cjs/generator/NavigationGenerator.js +338 -0
  11. package/dist/cjs/generator/NavigationGenerator.js.map +1 -0
  12. package/dist/cjs/generator/OperationsGenerator.js +384 -0
  13. package/dist/cjs/generator/OperationsGenerator.js.map +1 -0
  14. package/dist/cjs/generator/QueryModelsGenerator.js +2 -2
  15. package/dist/cjs/generator/QueryModelsGenerator.js.map +1 -1
  16. package/dist/cjs/generator/ServiceFnGenerator.js +18 -7
  17. package/dist/cjs/generator/ServiceFnGenerator.js.map +1 -1
  18. package/dist/cjs/generator/ServiceFnPromiseGenerator.js +10 -9
  19. package/dist/cjs/generator/ServiceFnPromiseGenerator.js.map +1 -1
  20. package/dist/dts/Cli.d.ts.map +1 -1
  21. package/dist/dts/generator/Generator.d.ts +2 -0
  22. package/dist/dts/generator/Generator.d.ts.map +1 -1
  23. package/dist/dts/generator/IndexGenerator.d.ts.map +1 -1
  24. package/dist/dts/generator/NamingHelper.d.ts.map +1 -1
  25. package/dist/dts/generator/NavigationGenerator.d.ts +55 -0
  26. package/dist/dts/generator/NavigationGenerator.d.ts.map +1 -0
  27. package/dist/dts/generator/OperationsGenerator.d.ts +50 -0
  28. package/dist/dts/generator/OperationsGenerator.d.ts.map +1 -0
  29. package/dist/esm/Cli.js +6 -2
  30. package/dist/esm/Cli.js.map +1 -1
  31. package/dist/esm/generator/Generator.js +33 -15
  32. package/dist/esm/generator/Generator.js.map +1 -1
  33. package/dist/esm/generator/IndexGenerator.js +19 -73
  34. package/dist/esm/generator/IndexGenerator.js.map +1 -1
  35. package/dist/esm/generator/NamingHelper.js +4 -1
  36. package/dist/esm/generator/NamingHelper.js.map +1 -1
  37. package/dist/esm/generator/NavigationGenerator.js +330 -0
  38. package/dist/esm/generator/NavigationGenerator.js.map +1 -0
  39. package/dist/esm/generator/OperationsGenerator.js +375 -0
  40. package/dist/esm/generator/OperationsGenerator.js.map +1 -0
  41. package/dist/esm/generator/QueryModelsGenerator.js +2 -2
  42. package/dist/esm/generator/QueryModelsGenerator.js.map +1 -1
  43. package/dist/esm/generator/ServiceFnGenerator.js +18 -7
  44. package/dist/esm/generator/ServiceFnGenerator.js.map +1 -1
  45. package/dist/esm/generator/ServiceFnPromiseGenerator.js +10 -9
  46. package/dist/esm/generator/ServiceFnPromiseGenerator.js.map +1 -1
  47. package/generator/NavigationGenerator/package.json +6 -0
  48. package/generator/OperationsGenerator/package.json +6 -0
  49. package/package.json +17 -1
  50. package/src/Cli.ts +8 -2
  51. package/src/generator/Generator.ts +43 -13
  52. package/src/generator/IndexGenerator.ts +21 -74
  53. package/src/generator/NamingHelper.ts +6 -1
  54. package/src/generator/NavigationGenerator.ts +451 -0
  55. package/src/generator/OperationsGenerator.ts +481 -0
  56. package/src/generator/QueryModelsGenerator.ts +2 -2
  57. package/src/generator/ServiceFnGenerator.ts +18 -7
  58. package/src/generator/ServiceFnPromiseGenerator.ts +10 -9
package/README.md CHANGED
@@ -13,24 +13,247 @@ pnpm add -g @odata-effect/odata-effect-generator
13
13
  ## Usage
14
14
 
15
15
  ```bash
16
- odata-effect-gen --metadata ./metadata.xml --output ./generated
16
+ odata-effect-gen generate ./metadata.xml ./generated
17
17
  ```
18
18
 
19
+ ### Arguments
20
+
21
+ - `<metadata-path>`: Path to OData metadata XML file (required)
22
+ - `<output-dir>`: Output directory for generated code (required)
23
+
19
24
  ### Options
20
25
 
21
- - `--metadata, -m`: Path to OData metadata XML file (required)
22
- - `--output, -o`: Output directory for generated code (required)
23
- - `--package, -p`: NPM package name (optional)
26
+ - `--service-name`: Override service name (defaults to EntityContainer name)
27
+ - `--package-name`: NPM package name (defaults to @template/<service-name>-effect)
28
+ - `--force`: Overwrite existing files
29
+ - `--files-only`: Generate only source files directly in output-dir (no package.json, tsconfig, src/ subdirectory)
24
30
 
25
31
  ## Generated Code
26
32
 
27
33
  The generator produces:
28
34
 
29
- - `Models.ts` - Schema classes for entities and complex types
30
- - `QueryModels.ts` - Type-safe query paths for filtering and ordering
31
- - `*Service.ts` - Effect-based service functions for each entity set
32
- - `*ServicePromise.ts` - Promise-based service functions
33
- - `index.ts` - Re-exports all generated code
35
+ | File | Description |
36
+ |------|-------------|
37
+ | `Models.ts` | Schema classes for entities and complex types |
38
+ | `QueryModels.ts` | Type-safe query paths for filtering and ordering |
39
+ | `*Service.ts` | Effect-based CRUD service functions for each entity set |
40
+ | `*ServicePromise.ts` | Promise-based wrappers for non-Effect environments |
41
+ | `PathBuilders.ts` | Tree-shakable navigation path builders |
42
+ | `Operations.ts` | Functions/Actions (if present in metadata) |
43
+ | `index.ts` | Re-exports all generated code |
44
+
45
+ ## Two Ways to Query Data
46
+
47
+ The generator provides two complementary approaches for querying OData services:
48
+
49
+ ### 1. Service Functions (Direct Operations)
50
+
51
+ Best for simple CRUD operations on a single entity set:
52
+
53
+ ```typescript
54
+ import { ProductService } from "./generated"
55
+
56
+ // Get all products
57
+ const products = yield* ProductService.getAll()
58
+
59
+ // Get by ID
60
+ const product = yield* ProductService.getById(123)
61
+
62
+ // Create
63
+ const newProduct = yield* ProductService.create({ name: "Widget", price: 9.99 })
64
+
65
+ // Update
66
+ yield* ProductService.update(123, { price: 12.99 })
67
+
68
+ // Delete
69
+ yield* ProductService.delete(123)
70
+ ```
71
+
72
+ ### 2. Path Builders (Pipe-based Navigation)
73
+
74
+ Best for navigating relationships with full type safety. Uses branded types to ensure you can only navigate to valid properties:
75
+
76
+ ```typescript
77
+ import { pipe } from "effect"
78
+ import {
79
+ People, byKey, trips, planItems, asFlight, bestFriend,
80
+ fetchCollection, fetchOne
81
+ } from "./generated"
82
+ import { Person, Trip, Flight } from "./generated"
83
+
84
+ // Navigate through relationships with pipe()
85
+ const flights = yield* pipe(
86
+ People, // Path<PersonModel, true> - collection
87
+ byKey("russellwhyte"), // Path<PersonModel, false> - single entity
88
+ trips, // Path<TripModel, true> - collection
89
+ byKey(0), // Path<TripModel, false> - single entity
90
+ planItems, // Path<PlanItemModel, true>
91
+ asFlight, // Path<FlightModel, true> - type cast
92
+ fetchCollection(Flight) // Execute the query
93
+ )
94
+
95
+ // Get a single entity
96
+ const person = yield* pipe(
97
+ People,
98
+ byKey("russellwhyte"),
99
+ fetchOne(Person)
100
+ )
101
+
102
+ // Navigate to a single related entity
103
+ const friend = yield* pipe(
104
+ People,
105
+ byKey("russellwhyte"),
106
+ bestFriend,
107
+ fetchOne(Person)
108
+ )
109
+ ```
110
+
111
+ ### Type Safety with Branded Types
112
+
113
+ The path builders use branded types to ensure type-safe navigation at compile time:
114
+
115
+ ```typescript
116
+ // Path<TEntity, IsCollection> tracks what entity type you're "at"
117
+ type Path<TEntity, IsCollection extends boolean = false> = string & {
118
+ readonly _entity: TEntity
119
+ readonly _collection: IsCollection
120
+ }
121
+
122
+ // TypeScript prevents invalid navigation:
123
+
124
+ // ✅ Valid - trips is a navigation property on Person
125
+ pipe(People, byKey("russell"), trips)
126
+
127
+ // ❌ Compile error - planItems is on Trip, not Person
128
+ pipe(People, byKey("russell"), planItems)
129
+
130
+ // ❌ Compile error - can't byKey on a single entity (not a collection)
131
+ pipe(People, byKey("russell"), byKey("other"))
132
+ ```
133
+
134
+ ### Path Builder Features
135
+
136
+ | Feature | Example |
137
+ |---------|---------|
138
+ | Entity set root | `People` → `Path<PersonModel, true>` |
139
+ | Key access | `byKey("id")` → converts collection to single |
140
+ | Navigation | `trips` → type-safe navigation to related entity |
141
+ | Type casting | `asFlight` → filter to derived type |
142
+ | Terminal ops | `fetchCollection(Schema)`, `fetchOne(Schema)` |
143
+
144
+ ### Tree-Shaking
145
+
146
+ Path builders are fully tree-shakable. Each navigation function is a separate export:
147
+
148
+ ```typescript
149
+ // Only import what you use - unused navigation functions are removed by bundler
150
+ import { People, byKey, trips } from "./generated"
151
+ ```
152
+
153
+ ### Comparison with odata2ts
154
+
155
+ If you're familiar with odata2ts, here's how the APIs compare:
156
+
157
+ ```typescript
158
+ // odata2ts (method chaining)
159
+ const response = await trippinService
160
+ .people("russellwhyte")
161
+ .trips(0)
162
+ .planItems()
163
+ .asFlightCollectionService()
164
+ .query()
165
+
166
+ // odata-effect (pipe composition)
167
+ const flights = yield* pipe(
168
+ People,
169
+ byKey("russellwhyte"),
170
+ trips,
171
+ byKey(0),
172
+ planItems,
173
+ asFlight,
174
+ fetchCollection(Flight)
175
+ )
176
+ ```
177
+
178
+ ## Query Options
179
+
180
+ Both service functions and path builders support OData query options:
181
+
182
+ ```typescript
183
+ // With service functions
184
+ const products = yield* ProductService.getAll({
185
+ $filter: "price gt 10",
186
+ $orderby: "name",
187
+ $top: 10,
188
+ $select: "id,name,price"
189
+ })
190
+
191
+ // With path builders (via fetchCollection/fetchOne)
192
+ const myTrips = yield* pipe(
193
+ People,
194
+ byKey("russellwhyte"),
195
+ trips,
196
+ (path) => fetchCollection(Trip)(path, {
197
+ $filter: "budget gt 1000",
198
+ $orderby: "startsAt desc"
199
+ })
200
+ )
201
+ ```
202
+
203
+ ## Type-Safe Query Building
204
+
205
+ Use the generated `QueryModels` for type-safe filter and orderby construction:
206
+
207
+ ```typescript
208
+ import { productQuery } from "./generated"
209
+
210
+ const query = productQuery()
211
+ .filter(q => q.price.gt(10).and(q.name.contains("Widget")))
212
+ .orderBy(q => q.name.asc())
213
+ .select("id", "name", "price")
214
+ .top(10)
215
+ .build()
216
+
217
+ const products = yield* ProductService.getAll(query)
218
+ ```
219
+
220
+ ## Promise-Based Usage
221
+
222
+ For non-Effect environments, use the Promise-based service functions:
223
+
224
+ ```typescript
225
+ import { createODataRuntime } from "@odata-effect/odata-effect-promise"
226
+ import { ProductServicePromise } from "./generated"
227
+
228
+ const runtime = createODataRuntime({
229
+ baseUrl: "https://api.example.com",
230
+ servicePath: "/odata/v4/"
231
+ })
232
+
233
+ // All operations return Promises
234
+ const products = await ProductServicePromise.getAll(runtime)
235
+ const product = await ProductServicePromise.getById(runtime, 123)
236
+
237
+ // Don't forget to dispose when done
238
+ await runtime.dispose()
239
+ ```
240
+
241
+ ## Operations (Functions & Actions)
242
+
243
+ If your OData service defines FunctionImports (V2) or Functions/Actions (V4), they are generated in `Operations.ts`:
244
+
245
+ ```typescript
246
+ import { Operations } from "./generated"
247
+
248
+ // V2 FunctionImport
249
+ const result = yield* Operations.getProductsByRating({ rating: 5 })
250
+
251
+ // V4 Function (no side effects)
252
+ const airport = yield* Operations.getNearestAirport({ lat: 51.5, lon: -0.1 })
253
+
254
+ // V4 Action (may have side effects)
255
+ yield* Operations.resetDataSource()
256
+ ```
34
257
 
35
258
  ## License
36
259
 
package/dist/cjs/Cli.js CHANGED
@@ -30,6 +30,7 @@ const outputDir = /*#__PURE__*/_cli.Args.path({
30
30
  const serviceName = /*#__PURE__*/_cli.Options.text("service-name").pipe(_cli.Options.optional, /*#__PURE__*/_cli.Options.withDescription("Override service name (defaults to EntityContainer name)"));
31
31
  const packageName = /*#__PURE__*/_cli.Options.text("package-name").pipe(_cli.Options.optional, /*#__PURE__*/_cli.Options.withDescription("NPM package name (defaults to @template/<service-name>-effect)"));
32
32
  const force = /*#__PURE__*/_cli.Options.boolean("force").pipe(/*#__PURE__*/_cli.Options.withDefault(false), /*#__PURE__*/_cli.Options.withDescription("Overwrite existing files"));
33
+ const filesOnly = /*#__PURE__*/_cli.Options.boolean("files-only").pipe(/*#__PURE__*/_cli.Options.withDefault(false), /*#__PURE__*/_cli.Options.withDescription("Generate only source files (no package.json, tsconfig, etc.) directly in output-dir"));
33
34
  // ============================================================================
34
35
  // Generate Command
35
36
  // ============================================================================
@@ -38,13 +39,15 @@ const generateCommand = /*#__PURE__*/_cli.Command.make("generate", {
38
39
  outputDir,
39
40
  serviceName,
40
41
  packageName,
41
- force
42
+ force,
43
+ filesOnly
42
44
  }).pipe(/*#__PURE__*/_cli.Command.withDescription("Generate Effect OData client from metadata"), /*#__PURE__*/_cli.Command.withHandler(({
43
45
  force: forceOverwrite,
44
46
  metadataPath: metaPath,
45
47
  outputDir: outDir,
46
48
  packageName: pkgName,
47
- serviceName: svcName
49
+ serviceName: svcName,
50
+ filesOnly: onlyFiles
48
51
  }) => Effect.gen(function* () {
49
52
  const fs = yield* FileSystem.FileSystem;
50
53
  yield* Console.log(`Reading metadata from: ${metaPath}`);
@@ -68,6 +71,7 @@ const generateCommand = /*#__PURE__*/_cli.Command.make("generate", {
68
71
  const config = {
69
72
  outputDir: outDir,
70
73
  force: forceOverwrite,
74
+ filesOnly: onlyFiles,
71
75
  ...(svcName._tag === "Some" ? {
72
76
  serviceName: svcName.value
73
77
  } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"Cli.js","names":["_cli","require","FileSystem","_interopRequireWildcard","Console","Effect","_Digester","_Generator","_XmlParser","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","metadataPath","Args","path","name","pipe","withDescription","outputDir","serviceName","Options","text","optional","packageName","force","boolean","withDefault","generateCommand","Command","make","withHandler","forceOverwrite","metaPath","outDir","pkgName","svcName","gen","fs","log","metadataContent","readFileString","mapError","error","Error","edmx","parseODataMetadata","dataModel","digestMetadata","version","namespace","entityTypes","size","complexTypes","enumTypes","entitySets","config","_tag","value","generate","rootCommand","withSubcommands","cli","exports","run"],"sources":["../../src/Cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Cli.js","names":["_cli","require","FileSystem","_interopRequireWildcard","Console","Effect","_Digester","_Generator","_XmlParser","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","metadataPath","Args","path","name","pipe","withDescription","outputDir","serviceName","Options","text","optional","packageName","force","boolean","withDefault","filesOnly","generateCommand","Command","make","withHandler","forceOverwrite","metaPath","outDir","pkgName","svcName","onlyFiles","gen","fs","log","metadataContent","readFileString","mapError","error","Error","edmx","parseODataMetadata","dataModel","digestMetadata","version","namespace","entityTypes","size","complexTypes","enumTypes","entitySets","config","_tag","value","generate","rootCommand","withSubcommands","cli","exports","run"],"sources":["../../src/Cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -10,6 +10,8 @@ var Effect = _interopRequireWildcard(require("effect/Effect"));
10
10
  var Schema = _interopRequireWildcard(require("effect/Schema"));
11
11
  var _IndexGenerator = require("./IndexGenerator.js");
12
12
  var _ModelsGenerator = require("./ModelsGenerator.js");
13
+ var _NavigationGenerator = require("./NavigationGenerator.js");
14
+ var _OperationsGenerator = require("./OperationsGenerator.js");
13
15
  var _PackageGenerator = require("./PackageGenerator.js");
14
16
  var _QueryModelsGenerator = require("./QueryModelsGenerator.js");
15
17
  var _ServiceFnGenerator = require("./ServiceFnGenerator.js");
@@ -44,6 +46,9 @@ const generate = (dataModel, config) => Effect.gen(function* () {
44
46
  const outputDir = config.outputDir;
45
47
  const serviceName = config.serviceName ?? dataModel.serviceName;
46
48
  const packageName = config.packageName ?? `@template/${serviceName.toLowerCase()}-effect`;
49
+ const filesOnly = config.filesOnly ?? false;
50
+ // When filesOnly is true, output directly to outputDir; otherwise use outputDir/src
51
+ const sourceDir = filesOnly ? outputDir : path.join(outputDir, "src");
47
52
  const packageConfig = {
48
53
  packageName,
49
54
  serviceName
@@ -52,31 +57,43 @@ const generate = (dataModel, config) => Effect.gen(function* () {
52
57
  const serviceResult = (0, _ServiceFnGenerator.generateServiceFns)(dataModel);
53
58
  // Generate Promise-based service function files
54
59
  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
+ // Generate operations file (FunctionImports, Functions, Actions)
61
+ const operationsResult = (0, _OperationsGenerator.generateOperations)(dataModel);
62
+ // Generate navigation builders
63
+ const navigationResult = (0, _NavigationGenerator.generateNavigations)(dataModel);
64
+ // Generate source files
65
+ const sourceFiles = [{
66
+ path: path.join(sourceDir, "Models.ts"),
60
67
  content: (0, _ModelsGenerator.generateModels)(dataModel)
61
68
  }, {
62
- path: path.join(outputDir, "src", "QueryModels.ts"),
69
+ path: path.join(sourceDir, "QueryModels.ts"),
63
70
  content: (0, _QueryModelsGenerator.generateQueryModels)(dataModel)
64
71
  },
65
72
  // Individual entity service function files (tree-shakable)
66
73
  ...serviceResult.entityServices.map(svc => ({
67
- path: path.join(outputDir, "src", svc.fileName),
74
+ path: path.join(sourceDir, svc.fileName),
68
75
  content: svc.content
69
76
  })),
70
77
  // Promise-based entity service function files
71
78
  ...promiseServiceResult.entityServices.map(svc => ({
72
- path: path.join(outputDir, "src", svc.fileName),
79
+ path: path.join(sourceDir, svc.fileName),
73
80
  content: svc.content
81
+ })),
82
+ // Operations file (only if there are unbound operations)
83
+ ...(operationsResult.operationsFile ? [{
84
+ path: path.join(sourceDir, operationsResult.operationsFile.fileName),
85
+ content: operationsResult.operationsFile.content
86
+ }] : []),
87
+ // Navigation builder files
88
+ ...navigationResult.navigationFiles.map(nav => ({
89
+ path: path.join(sourceDir, nav.fileName),
90
+ content: nav.content
74
91
  })), {
75
- path: path.join(outputDir, "src", "index.ts"),
92
+ path: path.join(sourceDir, "index.ts"),
76
93
  content: (0, _IndexGenerator.generateIndex)(dataModel)
77
- },
78
- // Package configuration files
79
- {
94
+ }];
95
+ // Package configuration files (only when not filesOnly)
96
+ const packageFiles = filesOnly ? [] : [{
80
97
  path: path.join(outputDir, "package.json"),
81
98
  content: (0, _PackageGenerator.generatePackageJson)(dataModel, packageConfig)
82
99
  }, {
@@ -95,11 +112,12 @@ const generate = (dataModel, config) => Effect.gen(function* () {
95
112
  path: path.join(outputDir, "vitest.config.ts"),
96
113
  content: (0, _PackageGenerator.generateVitestConfig)()
97
114
  }];
98
- // Create output directories
99
- yield* fs.makeDirectory(path.join(outputDir, "src"), {
115
+ const files = [...sourceFiles, ...packageFiles];
116
+ // Create output directory
117
+ yield* fs.makeDirectory(sourceDir, {
100
118
  recursive: true
101
119
  }).pipe(Effect.mapError(error => new GeneratorError({
102
- message: `Failed to create output directory: ${outputDir}/src`,
120
+ message: `Failed to create output directory: ${sourceDir}`,
103
121
  cause: error
104
122
  })));
105
123
  // Write all files
@@ -1 +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":[]}
1
+ {"version":3,"file":"Generator.js","names":["FileSystem","_interopRequireWildcard","require","Path","Effect","Schema","_IndexGenerator","_ModelsGenerator","_NavigationGenerator","_OperationsGenerator","_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","filesOnly","sourceDir","join","packageConfig","serviceResult","generateServiceFns","promiseServiceResult","generatePromiseServiceFns","operationsResult","generateOperations","navigationResult","generateNavigations","sourceFiles","content","generateModels","generateQueryModels","entityServices","map","svc","fileName","operationsFile","navigationFiles","nav","generateIndex","packageFiles","generatePackageJson","generateTsconfig","generateTsconfigSrc","generateTsconfigTest","generateTsconfigBuild","generateVitestConfig","files","makeDirectory","recursive","pipe","mapError","error","file","force","exists","logWarning","writeFileString","logInfo"],"sources":["../../../src/generator/Generator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.generateIndex = void 0;
7
7
  var _NamingHelper = require("./NamingHelper.js");
8
+ var _NavigationGenerator = require("./NavigationGenerator.js");
9
+ var _OperationsGenerator = require("./OperationsGenerator.js");
8
10
  var _ServiceFnPromiseGenerator = require("./ServiceFnPromiseGenerator.js");
9
11
  /**
10
12
  * Generate the index.ts file content.
@@ -47,90 +49,34 @@ const generateIndex = dataModel => {
47
49
  const isLast = i === modelExports.length - 1;
48
50
  lines.push(` ${modelExports[i]}${isLast ? "" : ","}`);
49
51
  }
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"`);
52
+ lines.push(`} from "./Models"`);
120
53
  lines.push(``);
121
54
  // Individual Entity Services (tree-shakable module namespace re-exports)
122
55
  lines.push(`// Individual Entity Services (tree-shakable)`);
123
56
  for (const entitySet of dataModel.entitySets.values()) {
124
57
  const serviceClassName = (0, _NamingHelper.getServiceClassName)(entitySet.name);
125
- lines.push(`export * as ${serviceClassName} from "./${serviceClassName}.js"`);
58
+ lines.push(`export * as ${serviceClassName} from "./${serviceClassName}"`);
126
59
  }
127
60
  lines.push(``);
128
61
  // Promise-based Entity Services (for non-Effect environments)
129
62
  lines.push(`// Promise-based Entity Services (for non-Effect environments)`);
130
63
  for (const entitySet of dataModel.entitySets.values()) {
131
64
  const promiseServiceName = (0, _ServiceFnPromiseGenerator.getPromiseServiceName)(entitySet.name);
132
- lines.push(`export * as ${promiseServiceName} from "./${promiseServiceName}.js"`);
65
+ lines.push(`export * as ${promiseServiceName} from "./${promiseServiceName}"`);
66
+ }
67
+ lines.push(``);
68
+ // Operations (FunctionImports, Functions, Actions) - only if there are unbound operations
69
+ const hasUnboundOperations = Array.from(dataModel.operations.values()).some(op => !op.isBound);
70
+ if (hasUnboundOperations) {
71
+ lines.push(`// Operations (FunctionImports, Functions, Actions)`);
72
+ const operationsModuleName = (0, _OperationsGenerator.getOperationsModuleName)();
73
+ lines.push(`export * as ${operationsModuleName} from "./${operationsModuleName}"`);
74
+ lines.push(``);
133
75
  }
76
+ // Path Builders (tree-shakable navigation)
77
+ lines.push(`// Path Builders (tree-shakable navigation)`);
78
+ const pathBuildersModuleName = (0, _NavigationGenerator.getPathBuildersModuleName)();
79
+ lines.push(`export * from "./${pathBuildersModuleName}"`);
134
80
  lines.push(``);
135
81
  // Query Models
136
82
  lines.push(`// Query Models`);
@@ -157,7 +103,7 @@ const generateIndex = dataModel => {
157
103
  const isLast = i === queryExports.length - 1;
158
104
  lines.push(` ${queryExports[i]}${isLast ? "" : ","}`);
159
105
  }
160
- lines.push(`} from "./QueryModels.js"`);
106
+ lines.push(`} from "./QueryModels"`);
161
107
  return lines.join("\n");
162
108
  };
163
109
  exports.generateIndex = generateIndex;
@@ -1 +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":[]}
1
+ {"version":3,"file":"IndexGenerator.js","names":["_NamingHelper","require","_NavigationGenerator","_OperationsGenerator","_ServiceFnPromiseGenerator","generateIndex","dataModel","lines","push","serviceName","modelExports","enumType","enumTypes","values","name","complexType","complexTypes","getEditableTypeName","entityType","entityTypes","keys","length","getIdTypeName","i","isLast","entitySet","entitySets","serviceClassName","getServiceClassName","promiseServiceName","getPromiseServiceName","hasUnboundOperations","Array","from","operations","some","op","isBound","operationsModuleName","getOperationsModuleName","pathBuildersModuleName","getPathBuildersModuleName","queryExports","getQueryInstanceName","getQueryInterfaceName","get","entityTypeFqName","getQueryFactoryName","join","exports"],"sources":["../../../src/generator/IndexGenerator.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":[]}