@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
@@ -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;AAuGvC;;;;;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;AAkBtD;;;;;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,CA2IpE,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;AAatD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,WAAW,SAAS,KAAG,MA+GpD,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,MAgB3D,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,EACV,SAAS,EAEV,MAAM,uBAAuB,CAAA;AA+B9B;;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;AA2FD;;;;;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"}
package/dist/esm/Cli.js CHANGED
@@ -22,6 +22,7 @@ const outputDir = /*#__PURE__*/Args.path({
22
22
  const serviceName = /*#__PURE__*/Options.text("service-name").pipe(Options.optional, /*#__PURE__*/Options.withDescription("Override service name (defaults to EntityContainer name)"));
23
23
  const packageName = /*#__PURE__*/Options.text("package-name").pipe(Options.optional, /*#__PURE__*/Options.withDescription("NPM package name (defaults to @template/<service-name>-effect)"));
24
24
  const force = /*#__PURE__*/Options.boolean("force").pipe(/*#__PURE__*/Options.withDefault(false), /*#__PURE__*/Options.withDescription("Overwrite existing files"));
25
+ const filesOnly = /*#__PURE__*/Options.boolean("files-only").pipe(/*#__PURE__*/Options.withDefault(false), /*#__PURE__*/Options.withDescription("Generate only source files (no package.json, tsconfig, etc.) directly in output-dir"));
25
26
  // ============================================================================
26
27
  // Generate Command
27
28
  // ============================================================================
@@ -30,13 +31,15 @@ const generateCommand = /*#__PURE__*/Command.make("generate", {
30
31
  outputDir,
31
32
  serviceName,
32
33
  packageName,
33
- force
34
+ force,
35
+ filesOnly
34
36
  }).pipe(/*#__PURE__*/Command.withDescription("Generate Effect OData client from metadata"), /*#__PURE__*/Command.withHandler(({
35
37
  force: forceOverwrite,
36
38
  metadataPath: metaPath,
37
39
  outputDir: outDir,
38
40
  packageName: pkgName,
39
- serviceName: svcName
41
+ serviceName: svcName,
42
+ filesOnly: onlyFiles
40
43
  }) => Effect.gen(function* () {
41
44
  const fs = yield* FileSystem.FileSystem;
42
45
  yield* Console.log(`Reading metadata from: ${metaPath}`);
@@ -60,6 +63,7 @@ const generateCommand = /*#__PURE__*/Command.make("generate", {
60
63
  const config = {
61
64
  outputDir: outDir,
62
65
  force: forceOverwrite,
66
+ filesOnly: onlyFiles,
63
67
  ...(svcName._tag === "Some" ? {
64
68
  serviceName: svcName.value
65
69
  } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"Cli.js","names":["Args","Command","Options","FileSystem","Console","Effect","digestMetadata","generate","parseODataMetadata","metadataPath","path","name","pipe","withDescription","outputDir","serviceName","text","optional","packageName","force","boolean","withDefault","generateCommand","make","withHandler","forceOverwrite","metaPath","outDir","pkgName","svcName","gen","fs","log","metadataContent","readFileString","mapError","error","Error","edmx","dataModel","version","namespace","entityTypes","size","complexTypes","enumTypes","entitySets","config","_tag","value","rootCommand","withSubcommands","cli","run"],"sources":["../../src/Cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Cli.js","names":["Args","Command","Options","FileSystem","Console","Effect","digestMetadata","generate","parseODataMetadata","metadataPath","path","name","pipe","withDescription","outputDir","serviceName","text","optional","packageName","force","boolean","withDefault","filesOnly","generateCommand","make","withHandler","forceOverwrite","metaPath","outDir","pkgName","svcName","onlyFiles","gen","fs","log","metadataContent","readFileString","mapError","error","Error","edmx","dataModel","version","namespace","entityTypes","size","complexTypes","enumTypes","entitySets","config","_tag","value","rootCommand","withSubcommands","cli","run"],"sources":["../../src/Cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,8 @@ import * as Effect from "effect/Effect";
9
9
  import * as Schema from "effect/Schema";
10
10
  import { generateIndex } from "./IndexGenerator.js";
11
11
  import { generateModels } from "./ModelsGenerator.js";
12
+ import { generateNavigations } from "./NavigationGenerator.js";
13
+ import { generateOperations } from "./OperationsGenerator.js";
12
14
  import { generatePackageJson, generateTsconfig, generateTsconfigBuild, generateTsconfigSrc, generateTsconfigTest, generateVitestConfig } from "./PackageGenerator.js";
13
15
  import { generateQueryModels } from "./QueryModelsGenerator.js";
14
16
  import { generateServiceFns } from "./ServiceFnGenerator.js";
@@ -35,6 +37,9 @@ export const generate = (dataModel, config) => Effect.gen(function* () {
35
37
  const outputDir = config.outputDir;
36
38
  const serviceName = config.serviceName ?? dataModel.serviceName;
37
39
  const packageName = config.packageName ?? `@template/${serviceName.toLowerCase()}-effect`;
40
+ const filesOnly = config.filesOnly ?? false;
41
+ // When filesOnly is true, output directly to outputDir; otherwise use outputDir/src
42
+ const sourceDir = filesOnly ? outputDir : path.join(outputDir, "src");
38
43
  const packageConfig = {
39
44
  packageName,
40
45
  serviceName
@@ -43,31 +48,43 @@ export const generate = (dataModel, config) => Effect.gen(function* () {
43
48
  const serviceResult = generateServiceFns(dataModel);
44
49
  // Generate Promise-based service function files
45
50
  const promiseServiceResult = generatePromiseServiceFns(dataModel);
46
- // Generate all files
47
- const files = [
48
- // Source files
49
- {
50
- path: path.join(outputDir, "src", "Models.ts"),
51
+ // Generate operations file (FunctionImports, Functions, Actions)
52
+ const operationsResult = generateOperations(dataModel);
53
+ // Generate navigation builders
54
+ const navigationResult = generateNavigations(dataModel);
55
+ // Generate source files
56
+ const sourceFiles = [{
57
+ path: path.join(sourceDir, "Models.ts"),
51
58
  content: generateModels(dataModel)
52
59
  }, {
53
- path: path.join(outputDir, "src", "QueryModels.ts"),
60
+ path: path.join(sourceDir, "QueryModels.ts"),
54
61
  content: generateQueryModels(dataModel)
55
62
  },
56
63
  // Individual entity service function files (tree-shakable)
57
64
  ...serviceResult.entityServices.map(svc => ({
58
- path: path.join(outputDir, "src", svc.fileName),
65
+ path: path.join(sourceDir, svc.fileName),
59
66
  content: svc.content
60
67
  })),
61
68
  // Promise-based entity service function files
62
69
  ...promiseServiceResult.entityServices.map(svc => ({
63
- path: path.join(outputDir, "src", svc.fileName),
70
+ path: path.join(sourceDir, svc.fileName),
64
71
  content: svc.content
72
+ })),
73
+ // Operations file (only if there are unbound operations)
74
+ ...(operationsResult.operationsFile ? [{
75
+ path: path.join(sourceDir, operationsResult.operationsFile.fileName),
76
+ content: operationsResult.operationsFile.content
77
+ }] : []),
78
+ // Navigation builder files
79
+ ...navigationResult.navigationFiles.map(nav => ({
80
+ path: path.join(sourceDir, nav.fileName),
81
+ content: nav.content
65
82
  })), {
66
- path: path.join(outputDir, "src", "index.ts"),
83
+ path: path.join(sourceDir, "index.ts"),
67
84
  content: generateIndex(dataModel)
68
- },
69
- // Package configuration files
70
- {
85
+ }];
86
+ // Package configuration files (only when not filesOnly)
87
+ const packageFiles = filesOnly ? [] : [{
71
88
  path: path.join(outputDir, "package.json"),
72
89
  content: generatePackageJson(dataModel, packageConfig)
73
90
  }, {
@@ -86,11 +103,12 @@ export const generate = (dataModel, config) => Effect.gen(function* () {
86
103
  path: path.join(outputDir, "vitest.config.ts"),
87
104
  content: generateVitestConfig()
88
105
  }];
89
- // Create output directories
90
- yield* fs.makeDirectory(path.join(outputDir, "src"), {
106
+ const files = [...sourceFiles, ...packageFiles];
107
+ // Create output directory
108
+ yield* fs.makeDirectory(sourceDir, {
91
109
  recursive: true
92
110
  }).pipe(Effect.mapError(error => new GeneratorError({
93
- message: `Failed to create output directory: ${outputDir}/src`,
111
+ message: `Failed to create output directory: ${sourceDir}`,
94
112
  cause: error
95
113
  })));
96
114
  // Write all files
@@ -1 +1 @@
1
- {"version":3,"file":"Generator.js","names":["FileSystem","Path","Effect","Schema","generateIndex","generateModels","generatePackageJson","generateTsconfig","generateTsconfigBuild","generateTsconfigSrc","generateTsconfigTest","generateVitestConfig","generateQueryModels","generateServiceFns","generatePromiseServiceFns","GeneratorError","TaggedError","message","String","cause","optional","Unknown","generate","dataModel","config","gen","fs","path","outputDir","serviceName","packageName","toLowerCase","packageConfig","serviceResult","promiseServiceResult","files","join","content","entityServices","map","svc","fileName","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","Path","Effect","Schema","generateIndex","generateModels","generateNavigations","generateOperations","generatePackageJson","generateTsconfig","generateTsconfigBuild","generateTsconfigSrc","generateTsconfigTest","generateVitestConfig","generateQueryModels","generateServiceFns","generatePromiseServiceFns","GeneratorError","TaggedError","message","String","cause","optional","Unknown","generate","dataModel","config","gen","fs","path","outputDir","serviceName","packageName","toLowerCase","filesOnly","sourceDir","join","packageConfig","serviceResult","promiseServiceResult","operationsResult","navigationResult","sourceFiles","content","entityServices","map","svc","fileName","operationsFile","navigationFiles","nav","packageFiles","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":[]}
@@ -1,4 +1,6 @@
1
1
  import { getEditableTypeName, getIdTypeName, getQueryFactoryName, getQueryInstanceName, getQueryInterfaceName, getServiceClassName } from "./NamingHelper.js";
2
+ import { getPathBuildersModuleName } from "./NavigationGenerator.js";
3
+ import { getOperationsModuleName } from "./OperationsGenerator.js";
2
4
  import { getPromiseServiceName } from "./ServiceFnPromiseGenerator.js";
3
5
  /**
4
6
  * Generate the index.ts file content.
@@ -41,90 +43,34 @@ export const generateIndex = dataModel => {
41
43
  const isLast = i === modelExports.length - 1;
42
44
  lines.push(` ${modelExports[i]}${isLast ? "" : ","}`);
43
45
  }
44
- lines.push(`} from "./Models.js"`);
45
- lines.push(``);
46
- // Re-export OData infrastructure
47
- const isV4 = dataModel.version === "V4";
48
- lines.push(`// Re-export OData infrastructure from @odata-effect/odata-effect`);
49
- lines.push(`export {`);
50
- lines.push(` // Errors`);
51
- if (!isV4) {
52
- lines.push(` SapErrorDetail,`);
53
- lines.push(` SapErrorResolution,`);
54
- lines.push(` SapApplication,`);
55
- lines.push(` SapInnerError,`);
56
- lines.push(` SapErrorMessage,`);
57
- lines.push(` SapErrorBody,`);
58
- lines.push(` SapErrorResponse,`);
59
- lines.push(` SapError,`);
60
- }
61
- lines.push(` ODataError,`);
62
- lines.push(` EntityNotFoundError,`);
63
- lines.push(` ParseError,`);
64
- if (isV4) {
65
- // V4 exports
66
- lines.push(` // OData V4`);
67
- lines.push(` ODataV4,`);
68
- lines.push(` ODataV4CollectionResponse,`);
69
- lines.push(` ODataV4ValueResponse,`);
70
- lines.push(` ODataV4Annotations,`);
71
- lines.push(` ODataV4ClientConfig,`);
72
- lines.push(` buildEntityPathV4,`);
73
- lines.push(` type ODataV4QueryOptions,`);
74
- lines.push(` type ODataV4RequestOptions,`);
75
- lines.push(` type ODataV4ClientConfigService,`);
76
- lines.push(` type PagedResultV4,`);
77
- } else {
78
- // V2 exports
79
- lines.push(` // OData V2`);
80
- lines.push(` OData,`);
81
- lines.push(` ODataSingleResponse,`);
82
- lines.push(` ODataCollectionResponse,`);
83
- lines.push(` ODataCollectionResponseWithMeta,`);
84
- lines.push(` ODataValueResponse,`);
85
- lines.push(` EntityMetadata,`);
86
- lines.push(` MediaMetadata,`);
87
- lines.push(` DeferredContent,`);
88
- lines.push(` ODataClientConfig,`);
89
- lines.push(` buildEntityPath,`);
90
- lines.push(` DEFAULT_HEADERS,`);
91
- lines.push(` MERGE_HEADERS,`);
92
- lines.push(` type ODataQueryOptions,`);
93
- lines.push(` type ODataRequestOptions,`);
94
- lines.push(` type ODataClientConfigService,`);
95
- lines.push(` type PagedResult,`);
96
- }
97
- lines.push(` // Query Builder`);
98
- lines.push(` FilterExpression,`);
99
- lines.push(` StringPath,`);
100
- lines.push(` NumberPath,`);
101
- lines.push(` BooleanPath,`);
102
- lines.push(` DateTimePath,`);
103
- lines.push(` EntityPath,`);
104
- lines.push(` CollectionPath,`);
105
- lines.push(` QueryBuilder,`);
106
- lines.push(` createQueryPaths,`);
107
- lines.push(` createQueryBuilder,`);
108
- lines.push(` type FieldToPath,`);
109
- lines.push(` type QueryPaths,`);
110
- lines.push(` type SelectableKeys,`);
111
- lines.push(` type ExpandableKeys,`);
112
- lines.push(` type BuiltQuery`);
113
- lines.push(`} from "@odata-effect/odata-effect"`);
46
+ lines.push(`} from "./Models"`);
114
47
  lines.push(``);
115
48
  // Individual Entity Services (tree-shakable module namespace re-exports)
116
49
  lines.push(`// Individual Entity Services (tree-shakable)`);
117
50
  for (const entitySet of dataModel.entitySets.values()) {
118
51
  const serviceClassName = getServiceClassName(entitySet.name);
119
- lines.push(`export * as ${serviceClassName} from "./${serviceClassName}.js"`);
52
+ lines.push(`export * as ${serviceClassName} from "./${serviceClassName}"`);
120
53
  }
121
54
  lines.push(``);
122
55
  // Promise-based Entity Services (for non-Effect environments)
123
56
  lines.push(`// Promise-based Entity Services (for non-Effect environments)`);
124
57
  for (const entitySet of dataModel.entitySets.values()) {
125
58
  const promiseServiceName = getPromiseServiceName(entitySet.name);
126
- lines.push(`export * as ${promiseServiceName} from "./${promiseServiceName}.js"`);
59
+ lines.push(`export * as ${promiseServiceName} from "./${promiseServiceName}"`);
60
+ }
61
+ lines.push(``);
62
+ // Operations (FunctionImports, Functions, Actions) - only if there are unbound operations
63
+ const hasUnboundOperations = Array.from(dataModel.operations.values()).some(op => !op.isBound);
64
+ if (hasUnboundOperations) {
65
+ lines.push(`// Operations (FunctionImports, Functions, Actions)`);
66
+ const operationsModuleName = getOperationsModuleName();
67
+ lines.push(`export * as ${operationsModuleName} from "./${operationsModuleName}"`);
68
+ lines.push(``);
127
69
  }
70
+ // Path Builders (tree-shakable navigation)
71
+ lines.push(`// Path Builders (tree-shakable navigation)`);
72
+ const pathBuildersModuleName = getPathBuildersModuleName();
73
+ lines.push(`export * from "./${pathBuildersModuleName}"`);
128
74
  lines.push(``);
129
75
  // Query Models
130
76
  lines.push(`// Query Models`);
@@ -151,7 +97,7 @@ export const generateIndex = dataModel => {
151
97
  const isLast = i === queryExports.length - 1;
152
98
  lines.push(` ${queryExports[i]}${isLast ? "" : ","}`);
153
99
  }
154
- lines.push(`} from "./QueryModels.js"`);
100
+ lines.push(`} from "./QueryModels"`);
155
101
  return lines.join("\n");
156
102
  };
157
103
  //# sourceMappingURL=IndexGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndexGenerator.js","names":["getEditableTypeName","getIdTypeName","getQueryFactoryName","getQueryInstanceName","getQueryInterfaceName","getServiceClassName","getPromiseServiceName","generateIndex","dataModel","lines","push","serviceName","modelExports","enumType","enumTypes","values","name","complexType","complexTypes","entityType","entityTypes","keys","length","i","isLast","isV4","version","entitySet","entitySets","serviceClassName","promiseServiceName","queryExports","get","entityTypeFqName","join"],"sources":["../../../src/generator/IndexGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"IndexGenerator.js","names":["getEditableTypeName","getIdTypeName","getQueryFactoryName","getQueryInstanceName","getQueryInterfaceName","getServiceClassName","getPathBuildersModuleName","getOperationsModuleName","getPromiseServiceName","generateIndex","dataModel","lines","push","serviceName","modelExports","enumType","enumTypes","values","name","complexType","complexTypes","entityType","entityTypes","keys","length","i","isLast","entitySet","entitySets","serviceClassName","promiseServiceName","hasUnboundOperations","Array","from","operations","some","op","isBound","operationsModuleName","pathBuildersModuleName","queryExports","get","entityTypeFqName","join"],"sources":["../../../src/generator/IndexGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -76,10 +76,13 @@ export const getServiceClassName = entitySetName => {
76
76
  // Remove trailing 's' if present to singularize
77
77
  let singular = entitySetName;
78
78
  if (singular.endsWith("ies")) {
79
+ // "Categories" -> "Category"
79
80
  singular = singular.slice(0, -3) + "y";
80
- } else if (singular.endsWith("es") && !singular.endsWith("ses")) {
81
+ } else if (singular.endsWith("xes") || singular.endsWith("ches") || singular.endsWith("shes") || singular.endsWith("sses") || singular.endsWith("zes")) {
82
+ // "Boxes" -> "Box", "Beaches" -> "Beach", etc.
81
83
  singular = singular.slice(0, -2);
82
84
  } else if (singular.endsWith("s") && !singular.endsWith("ss")) {
85
+ // "Products" -> "Product", "Airlines" -> "Airline"
83
86
  singular = singular.slice(0, -1);
84
87
  }
85
88
  return `${toPascalCase(singular)}Service`;
@@ -1 +1 @@
1
- {"version":3,"file":"NamingHelper.js","names":["toPascalCase","str","replace","_","char","toUpperCase","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":"AAAA;;;;;AAMA;;;;;;;;;;AAUA,OAAO,MAAMA,YAAY,GAAIC,GAAW,IAAY;EAClD,OAAOA,GAAG,CACPC,OAAO,CAAC,UAAU,EAAE,CAACC,CAAC,EAAEC,IAAI,KAAKA,IAAI,CAACC,WAAW,EAAE,CAAC,CACpDH,OAAO,CAAC,MAAM,EAAGE,IAAI,IAAKA,IAAI,CAACC,WAAW,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;;;;;AAUA,OAAO,MAAMC,WAAW,GAAIL,GAAW,IAAY;EACjD,MAAMM,MAAM,GAAGP,YAAY,CAACC,GAAG,CAAC;EAChC,OAAOM,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,MAAM,CAACG,KAAK,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;AAOA,OAAO,MAAMC,iBAAiB,GAAIV,GAAW,IAAY;EACvD;EACA,IAAI,QAAQ,CAACW,IAAI,CAACX,GAAG,CAAC,EAAE;IACtB,OAAO,IAAIA,GAAG,EAAE;EAClB;EACA;EACA,OAAOA,GAAG,CAACC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;;AAMA,OAAO,MAAMW,eAAe,GAAIC,SAAiB,IAAY;EAC3D,OAAOR,WAAW,CAACK,iBAAiB,CAACG,SAAS,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;AAMA,OAAO,MAAMC,YAAY,GAAID,SAAiB,IAAY;EACxD,OAAOd,YAAY,CAACW,iBAAiB,CAACG,SAAS,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;AASA,OAAO,MAAME,mBAAmB,GAAIC,aAAqB,IAAY;EACnE;EACA,IAAIC,QAAQ,GAAGD,aAAa;EAC5B,IAAIC,QAAQ,CAACC,QAAQ,CAAC,KAAK,CAAC,EAAE;IAC5BD,QAAQ,GAAGA,QAAQ,CAACR,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;EACxC,CAAC,MAAM,IAAIQ,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAACD,QAAQ,CAACC,QAAQ,CAAC,KAAK,CAAC,EAAE;IAC/DD,QAAQ,GAAGA,QAAQ,CAACR,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClC,CAAC,MAAM,IAAIQ,QAAQ,CAACC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAACD,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAAC,EAAE;IAC7DD,QAAQ,GAAGA,QAAQ,CAACR,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClC;EACA,OAAO,GAAGV,YAAY,CAACkB,QAAQ,CAAC,SAAS;AAC3C,CAAC;AAED;;;;;;;;;AASA,OAAO,MAAME,qBAAqB,GAAIC,QAAgB,IAAY;EAChE,OAAO,IAAIrB,YAAY,CAACqB,QAAQ,CAAC,EAAE;AACrC,CAAC;AAED;;;;;;;;;AASA,OAAO,MAAMC,oBAAoB,GAAID,QAAgB,IAAY;EAC/D,OAAO,IAAIrB,YAAY,CAACqB,QAAQ,CAAC,EAAE;AACrC,CAAC;AAED;;;;;;;;;AASA,OAAO,MAAME,mBAAmB,GAAIF,QAAgB,IAAY;EAC9D,OAAO,GAAGf,WAAW,CAACe,QAAQ,CAAC,OAAO;AACxC,CAAC;AAED;;;;;;;;;AASA,OAAO,MAAMG,mBAAmB,GAAIH,QAAgB,IAAY;EAC9D,OAAO,WAAWrB,YAAY,CAACqB,QAAQ,CAAC,EAAE;AAC5C,CAAC;AAED;;;;;;;;;AASA,OAAO,MAAMI,aAAa,GAAIJ,QAAgB,IAAY;EACxD,OAAO,GAAGrB,YAAY,CAACqB,QAAQ,CAAC,IAAI;AACtC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"NamingHelper.js","names":["toPascalCase","str","replace","_","char","toUpperCase","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":[]}