@effect/openapi-generator 4.0.0-beta.8 → 4.0.0-beta.80

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 (41) hide show
  1. package/dist/HttpApiTransformer.d.ts +41 -0
  2. package/dist/HttpApiTransformer.d.ts.map +1 -0
  3. package/dist/HttpApiTransformer.js +383 -0
  4. package/dist/HttpApiTransformer.js.map +1 -0
  5. package/dist/JsonSchemaGenerator.d.ts +25 -3
  6. package/dist/JsonSchemaGenerator.d.ts.map +1 -1
  7. package/dist/JsonSchemaGenerator.js +178 -47
  8. package/dist/JsonSchemaGenerator.js.map +1 -1
  9. package/dist/OpenApiGenerator.d.ts +81 -7
  10. package/dist/OpenApiGenerator.d.ts.map +1 -1
  11. package/dist/OpenApiGenerator.js +707 -119
  12. package/dist/OpenApiGenerator.js.map +1 -1
  13. package/dist/OpenApiPatch.d.ts +47 -24
  14. package/dist/OpenApiPatch.d.ts.map +1 -1
  15. package/dist/OpenApiPatch.js +42 -19
  16. package/dist/OpenApiPatch.js.map +1 -1
  17. package/dist/OpenApiTransformer.d.ts +85 -12
  18. package/dist/OpenApiTransformer.d.ts.map +1 -1
  19. package/dist/OpenApiTransformer.js +85 -8
  20. package/dist/OpenApiTransformer.js.map +1 -1
  21. package/dist/ParsedOperation.d.ts +172 -1
  22. package/dist/ParsedOperation.d.ts.map +1 -1
  23. package/dist/ParsedOperation.js +32 -0
  24. package/dist/ParsedOperation.js.map +1 -1
  25. package/dist/Utils.d.ts +51 -0
  26. package/dist/Utils.d.ts.map +1 -1
  27. package/dist/Utils.js +61 -0
  28. package/dist/Utils.js.map +1 -1
  29. package/dist/main.d.ts +12 -0
  30. package/dist/main.d.ts.map +1 -1
  31. package/dist/main.js +41 -8
  32. package/dist/main.js.map +1 -1
  33. package/package.json +10 -8
  34. package/src/HttpApiTransformer.ts +538 -0
  35. package/src/JsonSchemaGenerator.ts +272 -47
  36. package/src/OpenApiGenerator.ts +994 -173
  37. package/src/OpenApiPatch.ts +56 -31
  38. package/src/OpenApiTransformer.ts +89 -12
  39. package/src/ParsedOperation.ts +220 -1
  40. package/src/Utils.ts +61 -0
  41. package/src/main.ts +58 -10
package/dist/Utils.d.ts CHANGED
@@ -1,6 +1,57 @@
1
+ /**
2
+ * Converts an OpenAPI name into the generator's camel-case form.
3
+ *
4
+ * **Details**
5
+ *
6
+ * Separators are removed, leading digits are ignored, and letters following a
7
+ * separator or digit are upper-cased without otherwise changing letter casing.
8
+ *
9
+ * @category converting
10
+ * @since 4.0.0
11
+ */
1
12
  export declare const camelize: (self: string) => string;
13
+ /**
14
+ * Converts an OpenAPI operation id into the exported operation identifier used
15
+ * by generated TypeScript modules.
16
+ *
17
+ * @category converting
18
+ * @since 4.0.0
19
+ */
2
20
  export declare const identifier: (operationId: string) => Capitalize<string>;
21
+ /**
22
+ * Extracts a trimmed, non-empty string from an unknown value.
23
+ *
24
+ * **Details**
25
+ *
26
+ * Returns `undefined` for non-string values and for strings containing only
27
+ * whitespace.
28
+ *
29
+ * @category filtering
30
+ * @since 4.0.0
31
+ */
3
32
  export declare const nonEmptyString: (a: unknown) => string | undefined;
33
+ /**
34
+ * Renders an optional description as a JSDoc block for generated TypeScript.
35
+ *
36
+ * **Details**
37
+ *
38
+ * Returns an empty string when the description is absent and escapes any
39
+ * closing comment marker so generated source remains syntactically valid.
40
+ *
41
+ * @category converting
42
+ * @since 4.0.0
43
+ */
4
44
  export declare const toComment: (self: string | undefined) => string;
45
+ /**
46
+ * Appends every element from `source` into `destination` in order.
47
+ *
48
+ * **Details**
49
+ *
50
+ * This mutates `destination` directly, which avoids allocating an intermediate
51
+ * array when generator code needs to merge collections.
52
+ *
53
+ * @category concatenating
54
+ * @since 4.0.0
55
+ */
5
56
  export declare const spreadElementsInto: <A>(source: Array<A>, destination: Array<A>) => void;
6
57
  //# sourceMappingURL=Utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,MAqBvC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,aAAa,MAAM,uBAA6C,CAAA;AAE3F,eAAO,MAAM,cAAc,GAAI,GAAG,OAAO,KAAG,MAAM,GAAG,SAOpD,CAAA;AAED,eAAO,MAAM,SAAS,sCAMpB,CAAA;AAEF,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,KAAK,CAAC,CAAC,CAAC,KAAG,IAI/E,CAAA"}
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,MAqBvC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,aAAa,MAAM,uBAA6C,CAAA;AAE3F;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GAAI,GAAG,OAAO,KAAG,MAAM,GAAG,SAOpD,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,sCAMpB,CAAA;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,KAAK,CAAC,CAAC,CAAC,KAAG,IAI/E,CAAA"}
package/dist/Utils.js CHANGED
@@ -1,5 +1,26 @@
1
+ /**
2
+ * Shared utility helpers for the OpenAPI generator.
3
+ *
4
+ * This module centralizes the small transformations used while rendering
5
+ * generated TypeScript, including operation-name normalization, optional
6
+ * description handling, safe JSDoc comment emission, and direct array merging
7
+ * for code-generation accumulators.
8
+ *
9
+ * @since 4.0.0
10
+ */
1
11
  import * as String from "effect/String";
2
12
  import * as UndefinedOr from "effect/UndefinedOr";
13
+ /**
14
+ * Converts an OpenAPI name into the generator's camel-case form.
15
+ *
16
+ * **Details**
17
+ *
18
+ * Separators are removed, leading digits are ignored, and letters following a
19
+ * separator or digit are upper-cased without otherwise changing letter casing.
20
+ *
21
+ * @category converting
22
+ * @since 4.0.0
23
+ */
3
24
  export const camelize = self => {
4
25
  let str = "";
5
26
  let hadSymbol = false;
@@ -19,7 +40,25 @@ export const camelize = self => {
19
40
  }
20
41
  return str;
21
42
  };
43
+ /**
44
+ * Converts an OpenAPI operation id into the exported operation identifier used
45
+ * by generated TypeScript modules.
46
+ *
47
+ * @category converting
48
+ * @since 4.0.0
49
+ */
22
50
  export const identifier = operationId => String.capitalize(camelize(operationId));
51
+ /**
52
+ * Extracts a trimmed, non-empty string from an unknown value.
53
+ *
54
+ * **Details**
55
+ *
56
+ * Returns `undefined` for non-string values and for strings containing only
57
+ * whitespace.
58
+ *
59
+ * @category filtering
60
+ * @since 4.0.0
61
+ */
23
62
  export const nonEmptyString = a => {
24
63
  if (typeof a === "string") {
25
64
  const trimmed = String.trim(a);
@@ -28,12 +67,34 @@ export const nonEmptyString = a => {
28
67
  }
29
68
  }
30
69
  };
70
+ /**
71
+ * Renders an optional description as a JSDoc block for generated TypeScript.
72
+ *
73
+ * **Details**
74
+ *
75
+ * Returns an empty string when the description is absent and escapes any
76
+ * closing comment marker so generated source remains syntactically valid.
77
+ *
78
+ * @category converting
79
+ * @since 4.0.0
80
+ */
31
81
  export const toComment = /*#__PURE__*/UndefinedOr.match({
32
82
  onUndefined: () => "",
33
83
  onDefined: description => `/**
34
84
  * ${description.replace(/\*\//g, " * /").split("\n").join("\n* ")}
35
85
  */\n`
36
86
  });
87
+ /**
88
+ * Appends every element from `source` into `destination` in order.
89
+ *
90
+ * **Details**
91
+ *
92
+ * This mutates `destination` directly, which avoids allocating an intermediate
93
+ * array when generator code needs to merge collections.
94
+ *
95
+ * @category concatenating
96
+ * @since 4.0.0
97
+ */
37
98
  export const spreadElementsInto = (source, destination) => {
38
99
  for (let i = 0; i < source.length; i++) {
39
100
  destination.push(source[i]);
package/dist/Utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","names":["String","UndefinedOr","camelize","self","str","hadSymbol","i","length","charCode","charCodeAt","toUpperCase","identifier","operationId","capitalize","nonEmptyString","a","trimmed","trim","isNonEmpty","toComment","match","onUndefined","onDefined","description","replace","split","join","spreadElementsInto","source","destination","push"],"sources":["../src/Utils.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AAEjD,OAAO,MAAMC,QAAQ,GAAIC,IAAY,IAAY;EAC/C,IAAIC,GAAG,GAAG,EAAE;EACZ,IAAIC,SAAS,GAAG,KAAK;EACrB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAME,QAAQ,GAAGL,IAAI,CAACM,UAAU,CAACH,CAAC,CAAC;IACnC,IACGE,QAAQ,IAAI,EAAE,IAAIA,QAAQ,IAAI,EAAE,IAChCA,QAAQ,IAAI,EAAE,IAAIA,QAAQ,IAAI,GAAI,EACnC;MACAJ,GAAG,IAAIC,SAAS,GAAGF,IAAI,CAACG,CAAC,CAAC,CAACI,WAAW,EAAE,GAAGP,IAAI,CAACG,CAAC,CAAC;MAClDD,SAAS,GAAG,KAAK;IACnB,CAAC,MAAM,IAAIG,QAAQ,IAAI,EAAE,IAAIA,QAAQ,IAAI,EAAE,EAAE;MAC3C,IAAIJ,GAAG,CAACG,MAAM,GAAG,CAAC,EAAE;QAClBH,GAAG,IAAID,IAAI,CAACG,CAAC,CAAC;QACdD,SAAS,GAAG,IAAI;MAClB;IACF,CAAC,MAAM,IAAID,GAAG,CAACG,MAAM,GAAG,CAAC,EAAE;MACzBF,SAAS,GAAG,IAAI;IAClB;EACF;EACA,OAAOD,GAAG;AACZ,CAAC;AAED,OAAO,MAAMO,UAAU,GAAIC,WAAmB,IAAKZ,MAAM,CAACa,UAAU,CAACX,QAAQ,CAACU,WAAW,CAAC,CAAC;AAE3F,OAAO,MAAME,cAAc,GAAIC,CAAU,IAAwB;EAC/D,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE;IACzB,MAAMC,OAAO,GAAGhB,MAAM,CAACiB,IAAI,CAACF,CAAC,CAAC;IAC9B,IAAIf,MAAM,CAACkB,UAAU,CAACF,OAAO,CAAC,EAAE;MAC9B,OAAOA,OAAO;IAChB;EACF;AACF,CAAC;AAED,OAAO,MAAMG,SAAS,gBAAGlB,WAAW,CAACmB,KAAK,CAAC;EACzCC,WAAW,EAAEA,CAAA,KAAM,EAAE;EACrBC,SAAS,EAAGC,WAAmB,IAC7B;IACAA,WAAW,CAACC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,IAAI,CAAC,MAAM,CAAC;;CAEhE,CAAC;AAEF,OAAO,MAAMC,kBAAkB,GAAGA,CAAIC,MAAgB,EAAEC,WAAqB,KAAU;EACrF,KAAK,IAAIvB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsB,MAAM,CAACrB,MAAM,EAAED,CAAC,EAAE,EAAE;IACtCuB,WAAW,CAACC,IAAI,CAACF,MAAM,CAACtB,CAAC,CAAC,CAAC;EAC7B;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Utils.js","names":["String","UndefinedOr","camelize","self","str","hadSymbol","i","length","charCode","charCodeAt","toUpperCase","identifier","operationId","capitalize","nonEmptyString","a","trimmed","trim","isNonEmpty","toComment","match","onUndefined","onDefined","description","replace","split","join","spreadElementsInto","source","destination","push"],"sources":["../src/Utils.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;AAUA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AAEjD;;;;;;;;;;;AAWA,OAAO,MAAMC,QAAQ,GAAIC,IAAY,IAAY;EAC/C,IAAIC,GAAG,GAAG,EAAE;EACZ,IAAIC,SAAS,GAAG,KAAK;EACrB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAME,QAAQ,GAAGL,IAAI,CAACM,UAAU,CAACH,CAAC,CAAC;IACnC,IACGE,QAAQ,IAAI,EAAE,IAAIA,QAAQ,IAAI,EAAE,IAChCA,QAAQ,IAAI,EAAE,IAAIA,QAAQ,IAAI,GAAI,EACnC;MACAJ,GAAG,IAAIC,SAAS,GAAGF,IAAI,CAACG,CAAC,CAAC,CAACI,WAAW,EAAE,GAAGP,IAAI,CAACG,CAAC,CAAC;MAClDD,SAAS,GAAG,KAAK;IACnB,CAAC,MAAM,IAAIG,QAAQ,IAAI,EAAE,IAAIA,QAAQ,IAAI,EAAE,EAAE;MAC3C,IAAIJ,GAAG,CAACG,MAAM,GAAG,CAAC,EAAE;QAClBH,GAAG,IAAID,IAAI,CAACG,CAAC,CAAC;QACdD,SAAS,GAAG,IAAI;MAClB;IACF,CAAC,MAAM,IAAID,GAAG,CAACG,MAAM,GAAG,CAAC,EAAE;MACzBF,SAAS,GAAG,IAAI;IAClB;EACF;EACA,OAAOD,GAAG;AACZ,CAAC;AAED;;;;;;;AAOA,OAAO,MAAMO,UAAU,GAAIC,WAAmB,IAAKZ,MAAM,CAACa,UAAU,CAACX,QAAQ,CAACU,WAAW,CAAC,CAAC;AAE3F;;;;;;;;;;;AAWA,OAAO,MAAME,cAAc,GAAIC,CAAU,IAAwB;EAC/D,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE;IACzB,MAAMC,OAAO,GAAGhB,MAAM,CAACiB,IAAI,CAACF,CAAC,CAAC;IAC9B,IAAIf,MAAM,CAACkB,UAAU,CAACF,OAAO,CAAC,EAAE;MAC9B,OAAOA,OAAO;IAChB;EACF;AACF,CAAC;AAED;;;;;;;;;;;AAWA,OAAO,MAAMG,SAAS,gBAAGlB,WAAW,CAACmB,KAAK,CAAC;EACzCC,WAAW,EAAEA,CAAA,KAAM,EAAE;EACrBC,SAAS,EAAGC,WAAmB,IAC7B;IACAA,WAAW,CAACC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,IAAI,CAAC,MAAM,CAAC;;CAEhE,CAAC;AAEF;;;;;;;;;;;AAWA,OAAO,MAAMC,kBAAkB,GAAGA,CAAIC,MAAgB,EAAEC,WAAqB,KAAU;EACrF,KAAK,IAAIvB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsB,MAAM,CAACrB,MAAM,EAAED,CAAC,EAAE,EAAE;IACtCuB,WAAW,CAACC,IAAI,CAACF,MAAM,CAACtB,CAAC,CAAC,CAAC;EAC7B;AACF,CAAC","ignoreList":[]}
package/dist/main.d.ts CHANGED
@@ -1,5 +1,17 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as CliError from "effect/unstable/cli/CliError";
3
3
  import * as Command from "effect/unstable/cli/Command";
4
+ /**
5
+ * Runs the OpenAPI generator command-line program.
6
+ *
7
+ * **Details**
8
+ *
9
+ * The command reads an OpenAPI specification, optionally applies JSON patches,
10
+ * generates source code in the selected format, writes any generation warnings
11
+ * to stderr, and prints the generated source to stdout.
12
+ *
13
+ * @category running
14
+ * @since 4.0.0
15
+ */
4
16
  export declare const run: Effect.Effect<void, CliError.CliError, Command.Environment>;
5
17
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AA6DtD,eAAO,MAAM,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAE1E,CAAA"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AA4EtD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAE1E,CAAA"}
package/dist/main.js CHANGED
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Command-line entry point for generating Effect HTTP clients or HttpApi
3
+ * definitions from an OpenAPI specification.
4
+ *
5
+ * The CLI reads a spec file, optionally applies JSON patches in order, selects
6
+ * the generator layer for the requested output format, reports generation
7
+ * warnings to stderr, and writes the generated source to stdout.
8
+ *
9
+ * @since 4.0.0
10
+ */
1
11
  import * as Console from "effect/Console";
2
12
  import * as Effect from "effect/Effect";
3
13
  import * as CliError from "effect/unstable/cli/CliError";
@@ -5,19 +15,19 @@ import * as Command from "effect/unstable/cli/Command";
5
15
  import * as Flag from "effect/unstable/cli/Flag";
6
16
  import * as OpenApiGenerator from "./OpenApiGenerator.js";
7
17
  import * as OpenApiPatch from "./OpenApiPatch.js";
8
- const spec = /*#__PURE__*/Flag.fileParse("spec").pipe(/*#__PURE__*/Flag.withAlias("s"), /*#__PURE__*/Flag.withDescription("The OpenAPI spec file to generate the client from"));
9
- const name = /*#__PURE__*/Flag.string("name").pipe(/*#__PURE__*/Flag.withAlias("n"), /*#__PURE__*/Flag.withDescription("The name of the generated client"), /*#__PURE__*/Flag.withDefault("Client"));
10
- const typeOnly = /*#__PURE__*/Flag.boolean("type-only").pipe(/*#__PURE__*/Flag.withAlias("t"), /*#__PURE__*/Flag.withDescription("Generate a type-only client without schemas"));
18
+ const spec = /*#__PURE__*/Flag.fileParse("spec").pipe(/*#__PURE__*/Flag.withAlias("s"), /*#__PURE__*/Flag.withDescription("The OpenAPI spec file to generate output from"));
19
+ const name = /*#__PURE__*/Flag.string("name").pipe(/*#__PURE__*/Flag.withAlias("n"), /*#__PURE__*/Flag.withDescription("The name of the generated output"), /*#__PURE__*/Flag.withDefault("Client"));
20
+ const format = /*#__PURE__*/Flag.choice("format", ["httpclient", "httpclient-type-only", "httpapi"]).pipe(/*#__PURE__*/Flag.withAlias("f"), /*#__PURE__*/Flag.withDescription("Output format to generate: httpclient | httpclient-type-only | httpapi (default: httpclient)"), /*#__PURE__*/Flag.withDefault("httpclient"));
11
21
  const patch = /*#__PURE__*/Flag.string("patch").pipe(/*#__PURE__*/Flag.withAlias("p"), /*#__PURE__*/Flag.withDescription("JSON patch to apply to OpenAPI spec before generation. " + "Can be a file path (.json, .yaml, .yml) or inline JSON array. " + "Multiple patches are applied in order."), /*#__PURE__*/Flag.between(0, Infinity));
12
22
  const root = /*#__PURE__*/Command.make("openapigen", {
13
23
  spec,
14
- typeOnly,
24
+ format,
15
25
  name,
16
26
  patch
17
27
  }).pipe(/*#__PURE__*/Command.withHandler(/*#__PURE__*/Effect.fnUntraced(function* ({
18
28
  name,
19
29
  spec,
20
- typeOnly,
30
+ format,
21
31
  patch
22
32
  }) {
23
33
  let patchedSpec = spec;
@@ -33,15 +43,38 @@ const root = /*#__PURE__*/Command.make("openapigen", {
33
43
  })));
34
44
  }
35
45
  const generator = yield* OpenApiGenerator.OpenApiGenerator;
46
+ const warnings = [];
36
47
  const source = yield* generator.generate(patchedSpec, {
37
48
  name,
38
- typeOnly
49
+ format,
50
+ onWarning: warning => {
51
+ warnings.push(warning);
52
+ }
53
+ });
54
+ yield* Effect.forEach(warnings, warning => Console.error(formatWarning(warning)), {
55
+ discard: true
39
56
  });
40
57
  return yield* Console.log(source);
41
58
  })), /*#__PURE__*/Command.provide(({
42
- typeOnly
43
- }) => typeOnly ? OpenApiGenerator.layerTransformerTs : OpenApiGenerator.layerTransformerSchema));
59
+ format
60
+ }) => format === "httpclient-type-only" ? OpenApiGenerator.layerTransformerTs : OpenApiGenerator.layerTransformerSchema));
61
+ /**
62
+ * Runs the OpenAPI generator command-line program.
63
+ *
64
+ * **Details**
65
+ *
66
+ * The command reads an OpenAPI specification, optionally applies JSON patches,
67
+ * generates source code in the selected format, writes any generation warnings
68
+ * to stderr, and prints the generated source to stdout.
69
+ *
70
+ * @category running
71
+ * @since 4.0.0
72
+ */
44
73
  export const run = /*#__PURE__*/Command.run(root, {
45
74
  version: "0.0.0"
46
75
  });
76
+ const formatWarning = warning => {
77
+ const context = [warning.method?.toUpperCase(), warning.path, warning.operationId ? `(${warning.operationId})` : undefined].filter(value => value !== undefined);
78
+ return context.length > 0 ? `WARNING [${warning.code}] ${context.join(" ")}: ${warning.message}` : `WARNING [${warning.code}] ${warning.message}`;
79
+ };
47
80
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","names":["Console","Effect","CliError","Command","Flag","OpenApiGenerator","OpenApiPatch","spec","fileParse","pipe","withAlias","withDescription","name","string","withDefault","typeOnly","boolean","patch","between","Infinity","root","make","withHandler","fnUntraced","patchedSpec","length","parsedPatches","forEach","input","parsePatchInput","map","p","source","mapError","error","UserError","cause","applyPatches","generator","generate","log","provide","layerTransformerTs","layerTransformerSchema","run","version"],"sources":["../src/main.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"main.js","names":["Console","Effect","CliError","Command","Flag","OpenApiGenerator","OpenApiPatch","spec","fileParse","pipe","withAlias","withDescription","name","string","withDefault","format","choice","patch","between","Infinity","root","make","withHandler","fnUntraced","patchedSpec","length","parsedPatches","forEach","input","parsePatchInput","map","p","source","mapError","error","UserError","cause","applyPatches","generator","warnings","generate","onWarning","warning","push","formatWarning","discard","log","provide","layerTransformerTs","layerTransformerSchema","run","version","context","method","toUpperCase","path","operationId","undefined","filter","value","code","join","message"],"sources":["../src/main.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@effect/openapi-generator",
3
3
  "type": "module",
4
- "version": "4.0.0-beta.8",
4
+ "version": "4.0.0-beta.80",
5
5
  "license": "MIT",
6
- "description": "Generate Effect Schema types and HTTP clients from OpenAPI specifications",
6
+ "description": "Generate Effect Schema types, HTTP clients, and HttpApi modules from OpenAPI specifications",
7
7
  "homepage": "https://effect.website",
8
8
  "repository": {
9
9
  "type": "git",
@@ -45,16 +45,18 @@
45
45
  "provenance": true
46
46
  },
47
47
  "peerDependencies": {
48
- "@effect/platform-node": "^4.0.0-beta.8",
49
- "effect": "^4.0.0-beta.8"
48
+ "@effect/platform-node": "^4.0.0-beta.80",
49
+ "effect": "^4.0.0-beta.80"
50
+ },
51
+ "dependencies": {
52
+ "swagger2openapi": "^7.0.8"
50
53
  },
51
54
  "devDependencies": {
52
55
  "@types/swagger2openapi": "^7.0.4",
53
56
  "json-schema-typed": "^8.0.2",
54
- "openapi-typescript": "^7.10.1",
55
- "swagger2openapi": "^7.0.8",
56
- "yaml": "^2.8.2",
57
- "effect": "^4.0.0-beta.8"
57
+ "openapi-typescript": "^7.13.0",
58
+ "yaml": "^2.9.0",
59
+ "effect": "^4.0.0-beta.80"
58
60
  },
59
61
  "scripts": {
60
62
  "build": "tsc -b tsconfig.json && pnpm babel",