@goast/kotlin 0.2.8 → 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 (112) hide show
  1. package/README.md +36 -4
  2. package/cjs/index.js +0 -2
  3. package/cjs/lib/ast/nodes/annotation.js +1 -1
  4. package/cjs/lib/ast/nodes/argument.js +2 -2
  5. package/cjs/lib/ast/nodes/call.js +1 -1
  6. package/cjs/lib/ast/nodes/class.js +1 -1
  7. package/cjs/lib/ast/nodes/collection-literal.js +1 -1
  8. package/cjs/lib/ast/nodes/constructor.js +1 -1
  9. package/cjs/lib/ast/nodes/doc-tag.js +1 -1
  10. package/cjs/lib/ast/nodes/doc.js +1 -1
  11. package/cjs/lib/ast/nodes/enum-value.js +1 -1
  12. package/cjs/lib/ast/nodes/enum.js +1 -1
  13. package/cjs/lib/ast/nodes/function.js +1 -1
  14. package/cjs/lib/ast/nodes/generic-parameter.js +1 -1
  15. package/cjs/lib/ast/nodes/init-block.js +1 -1
  16. package/cjs/lib/ast/nodes/interface.js +1 -1
  17. package/cjs/lib/ast/nodes/lambda-type.js +1 -1
  18. package/cjs/lib/ast/nodes/lambda.js +1 -1
  19. package/cjs/lib/ast/nodes/parameter.js +2 -2
  20. package/cjs/lib/ast/nodes/property.js +1 -1
  21. package/cjs/lib/ast/nodes/reference.js +2 -2
  22. package/cjs/lib/ast/nodes/string.js +1 -1
  23. package/cjs/lib/ast/utils/get-kotlin-builder-options.js +2 -3
  24. package/cjs/lib/ast/utils/to-kt-node.js +1 -2
  25. package/cjs/lib/ast/utils/write-kt-annotations.js +1 -2
  26. package/cjs/lib/ast/utils/write-kt-arguments.js +1 -2
  27. package/cjs/lib/ast/utils/write-kt-enum-values.js +1 -2
  28. package/cjs/lib/ast/utils/write-kt-generic-parameters.js +1 -2
  29. package/cjs/lib/ast/utils/write-kt-members.js +1 -2
  30. package/cjs/lib/ast/utils/write-kt-node.js +2 -3
  31. package/cjs/lib/ast/utils/write-kt-parameters.js +1 -2
  32. package/cjs/lib/file-builder.js +2 -2
  33. package/cjs/lib/generators/models/model-generator.js +4 -5
  34. package/cjs/lib/generators/models/models-generator.js +8 -3
  35. package/cjs/lib/generators/models/models.js +9 -1
  36. package/cjs/lib/generators/services/okhttp3-clients/models.js +6 -1
  37. package/cjs/lib/generators/services/okhttp3-clients/okhttp3-client-generator.js +28 -28
  38. package/cjs/lib/generators/services/okhttp3-clients/okhttp3-clients-generator.js +8 -3
  39. package/cjs/lib/generators/services/okhttp3-clients/refs.js +1 -2
  40. package/cjs/lib/generators/services/spring-controllers/models.js +7 -1
  41. package/cjs/lib/generators/services/spring-controllers/spring-controller-generator.js +4 -4
  42. package/cjs/lib/generators/services/spring-controllers/spring-controllers-generator.js +8 -3
  43. package/cjs/lib/import-collection.js +1 -1
  44. package/cjs/lib/utils.js +3 -4
  45. package/esm/index.js +0 -2
  46. package/esm/lib/ast/nodes/annotation.js +1 -1
  47. package/esm/lib/ast/nodes/argument.js +2 -2
  48. package/esm/lib/ast/nodes/call.js +1 -1
  49. package/esm/lib/ast/nodes/class.js +1 -1
  50. package/esm/lib/ast/nodes/collection-literal.js +1 -1
  51. package/esm/lib/ast/nodes/constructor.js +1 -1
  52. package/esm/lib/ast/nodes/doc-tag.js +1 -1
  53. package/esm/lib/ast/nodes/doc.js +1 -1
  54. package/esm/lib/ast/nodes/enum-value.js +1 -1
  55. package/esm/lib/ast/nodes/enum.js +1 -1
  56. package/esm/lib/ast/nodes/function.js +1 -1
  57. package/esm/lib/ast/nodes/generic-parameter.js +1 -1
  58. package/esm/lib/ast/nodes/init-block.js +1 -1
  59. package/esm/lib/ast/nodes/interface.js +1 -1
  60. package/esm/lib/ast/nodes/lambda-type.js +1 -1
  61. package/esm/lib/ast/nodes/lambda.js +1 -1
  62. package/esm/lib/ast/nodes/parameter.js +2 -2
  63. package/esm/lib/ast/nodes/property.js +1 -1
  64. package/esm/lib/ast/nodes/reference.js +2 -2
  65. package/esm/lib/ast/nodes/string.js +1 -1
  66. package/esm/lib/ast/utils/get-kotlin-builder-options.js +1 -1
  67. package/esm/lib/generators/models/model-generator.js +4 -5
  68. package/esm/lib/generators/models/models-generator.js +8 -3
  69. package/esm/lib/generators/models/models.js +9 -1
  70. package/esm/lib/generators/services/okhttp3-clients/models.js +6 -1
  71. package/esm/lib/generators/services/okhttp3-clients/okhttp3-client-generator.js +28 -28
  72. package/esm/lib/generators/services/okhttp3-clients/okhttp3-clients-generator.js +8 -3
  73. package/esm/lib/generators/services/spring-controllers/models.js +7 -1
  74. package/esm/lib/generators/services/spring-controllers/spring-controller-generator.js +2 -2
  75. package/esm/lib/generators/services/spring-controllers/spring-controllers-generator.js +8 -3
  76. package/esm/lib/import-collection.js +1 -1
  77. package/package.json +7 -6
  78. package/types/index.d.ts +0 -1
  79. package/types/lib/ast/nodes/annotation.d.ts +1 -1
  80. package/types/lib/ast/nodes/argument.d.ts +2 -4
  81. package/types/lib/ast/nodes/call.d.ts +1 -1
  82. package/types/lib/ast/nodes/class.d.ts +1 -1
  83. package/types/lib/ast/nodes/collection-literal.d.ts +1 -1
  84. package/types/lib/ast/nodes/constructor.d.ts +1 -1
  85. package/types/lib/ast/nodes/doc-tag.d.ts +1 -1
  86. package/types/lib/ast/nodes/doc.d.ts +1 -1
  87. package/types/lib/ast/nodes/enum-value.d.ts +1 -1
  88. package/types/lib/ast/nodes/enum.d.ts +1 -1
  89. package/types/lib/ast/nodes/function.d.ts +1 -1
  90. package/types/lib/ast/nodes/generic-parameter.d.ts +1 -1
  91. package/types/lib/ast/nodes/init-block.d.ts +1 -1
  92. package/types/lib/ast/nodes/interface.d.ts +1 -1
  93. package/types/lib/ast/nodes/lambda-type.d.ts +1 -1
  94. package/types/lib/ast/nodes/lambda.d.ts +1 -1
  95. package/types/lib/ast/nodes/object.d.ts +1 -1
  96. package/types/lib/ast/nodes/parameter.d.ts +2 -12
  97. package/types/lib/ast/nodes/property.d.ts +3 -15
  98. package/types/lib/ast/nodes/reference.d.ts +7 -23
  99. package/types/lib/ast/nodes/string.d.ts +1 -1
  100. package/types/lib/ast/references/jackson.d.ts +49 -35
  101. package/types/lib/ast/references/jakarta.d.ts +21 -15
  102. package/types/lib/ast/references/java.d.ts +41 -31
  103. package/types/lib/ast/references/kotlin.d.ts +138 -114
  104. package/types/lib/ast/references/okhttp3.d.ts +14 -10
  105. package/types/lib/ast/references/reactor.d.ts +6 -6
  106. package/types/lib/ast/references/spring.d.ts +76 -56
  107. package/types/lib/ast/references/swagger.d.ts +28 -20
  108. package/types/lib/generators/models/model-generator.d.ts +1 -1
  109. package/types/lib/generators/models/models.d.ts +4 -2
  110. package/types/lib/generators/services/okhttp3-clients/models.d.ts +4 -2
  111. package/types/lib/generators/services/okhttp3-clients/refs.d.ts +137 -121
  112. package/types/lib/generators/services/spring-controllers/models.d.ts +4 -2
package/README.md CHANGED
@@ -1,7 +1,39 @@
1
- # kotlin
1
+ # gOAst (@goast/kotlin)
2
2
 
3
- This library was generated with [Nx](https://nx.dev).
3
+ [![@goast/kotlin NPM Version](https://img.shields.io/npm/v/%40goast%2Fkotlin?logo=npm&label=%40goast%2Fkotlin)](https://www.npmjs.com/package/@goast/kotlin)
4
4
 
5
- ## Running unit tests
5
+ **gOAst** stands for **g**enerative **O**pen **A**PI **s**pecification **t**ransformer, a tool designed to transform OpenAPI specifications into various forms with flexibility and extensibility at its core.
6
6
 
7
- Run `nx test kotlin` to execute the unit tests via [Jest](https://jestjs.io).
7
+ For more Information, please visit the [gOAst GitHub Repository](https://github.com/MaSch0212/goast/blob/main).
8
+
9
+ ## Purpose 👍
10
+
11
+ The `@goast/kotlin` package provides generators for [Kotlin](https://kotlinlang.org/) code generation from OpenAPI specifications.
12
+
13
+ ## Usage Example 🚀
14
+
15
+ ```typescript
16
+ import { OpenApiGenerator } from '@goast/core';
17
+ import { KotlinModelsGenerator, KotlinSpringControllersGenerator } from '@goast/kotlin';
18
+
19
+ async function main() {
20
+ await new OpenApiGenerator({ outputDir: '.api' })
21
+ .useType(KotlinModelsGenerator)
22
+ .useType(KotlinSpringControllersGenerator)
23
+ .parseAndGenerateFromDir('.openapi');
24
+ }
25
+
26
+ main();
27
+ ```
28
+
29
+ ## Available Generators 📚
30
+
31
+ - [`KotlinModelsGenerator`](https://github.com/MaSch0212/goast/wiki/Kotlin%20Models%20Generator): Generates Kotlin data classes from schemas in the OpenAPI specification(s).
32
+ - [`KotlinSpringControllersGenerator`](https://github.com/MaSch0212/goast/wiki/Kotlin%20Spring%20Controllers%20Generator): Generates [Spring](https://spring.io/) controllers for Kotlin from paths in the OpenAPI specification(s).
33
+ - Depends on the output of the `KotlinModelsGenerator` generator.
34
+ - [`KotlinOkHttp3ClientsGenerator`](https://github.com/MaSch0212/goast/wiki/Kotlin%20OkHttp3%20Clients%20Generator): Generates [OkHttp3](https://square.github.io/okhttp/) clients for Kotlin from paths in the OpenAPI specification(s).
35
+ - Depends on the output of the `KotlinModelsGenerator` generator.
36
+
37
+ ## API Documentation 📖
38
+
39
+ The API documentation can be found [here](https://github.com/MaSch0212/goast/wiki/Kotlin%20Generators).
package/cjs/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.kt = void 0;
4
3
  const tslib_1 = require("tslib");
5
4
  tslib_1.__exportStar(require("./lib/common-results"), exports);
6
5
  tslib_1.__exportStar(require("./lib/config"), exports);
@@ -9,4 +8,3 @@ tslib_1.__exportStar(require("./lib/file-builder"), exports);
9
8
  tslib_1.__exportStar(require("./lib/import-collection"), exports);
10
9
  tslib_1.__exportStar(require("./lib/utils"), exports);
11
10
  tslib_1.__exportStar(require("./lib/ast"), exports);
12
- exports.kt = tslib_1.__importStar(require("./lib/ast/references"));
@@ -33,7 +33,7 @@ class KtAnnotation extends node_1.KtNode {
33
33
  }
34
34
  }
35
35
  exports.KtAnnotation = KtAnnotation;
36
- const createAnnotation = ($class, $arguments, options) => new KtAnnotation(Object.assign(Object.assign({}, options), { class: $class, arguments: $arguments }));
36
+ const createAnnotation = ($class, $arguments, options) => new KtAnnotation({ ...options, class: $class, arguments: $arguments });
37
37
  exports.ktAnnotation = Object.assign(createAnnotation, {
38
38
  write: write_kt_annotations_1.writeKtAnnotations,
39
39
  });
@@ -24,8 +24,8 @@ class KtArgument extends node_1.KtNode {
24
24
  }
25
25
  }
26
26
  exports.KtArgument = KtArgument;
27
- const createArgument = (value, options) => new KtArgument(Object.assign(Object.assign({}, options), { value }));
28
- const createNamedArgument = (name, value, options) => new KtArgument(Object.assign(Object.assign({}, options), { value, name }));
27
+ const createArgument = (value, options) => new KtArgument({ ...options, value });
28
+ const createNamedArgument = (name, value, options) => new KtArgument({ ...options, value, name });
29
29
  exports.ktArgument = Object.assign(createArgument, {
30
30
  named: createNamedArgument,
31
31
  write: write_kt_arguments_1.writeKtArguments,
@@ -31,7 +31,7 @@ class KtCall extends node_1.KtNode {
31
31
  }
32
32
  }
33
33
  exports.KtCall = KtCall;
34
- const createCall = (path, args, options) => new KtCall(Object.assign(Object.assign({}, options), { path: Array.isArray(path) ? path : [path], arguments: args }));
34
+ const createCall = (path, args, options) => new KtCall({ ...options, path: Array.isArray(path) ? path : [path], arguments: args });
35
35
  exports.ktCall = Object.assign(createCall, {
36
36
  write: write_kt_node_1.writeKtNodes,
37
37
  });
@@ -88,7 +88,7 @@ class KtClass extends node_1.KtNode {
88
88
  }
89
89
  }
90
90
  exports.KtClass = KtClass;
91
- const createClass = (name, options) => new KtClass(Object.assign(Object.assign({}, options), { name }));
91
+ const createClass = (name, options) => new KtClass({ ...options, name });
92
92
  exports.ktClass = Object.assign(createClass, {
93
93
  write: write_kt_node_1.writeKtNodes,
94
94
  });
@@ -18,7 +18,7 @@ class KtCollectionLiteral extends node_1.KtNode {
18
18
  }
19
19
  }
20
20
  exports.KtCollectionLiteral = KtCollectionLiteral;
21
- const createCollectionLiteral = (elements, options) => new KtCollectionLiteral(Object.assign(Object.assign({}, options), { elements }));
21
+ const createCollectionLiteral = (elements, options) => new KtCollectionLiteral({ ...options, elements });
22
22
  exports.ktCollectionLiteral = Object.assign(createCollectionLiteral, {
23
23
  write: write_kt_node_1.writeKtNodes,
24
24
  });
@@ -69,7 +69,7 @@ class KtConstructor extends node_1.KtNode {
69
69
  }
70
70
  }
71
71
  exports.KtConstructor = KtConstructor;
72
- const createConstructor = (parameters, body, options) => new KtConstructor(Object.assign(Object.assign({}, options), { parameters: parameters !== null && parameters !== void 0 ? parameters : undefined, body }));
72
+ const createConstructor = (parameters, body, options) => new KtConstructor({ ...options, parameters: parameters !== null && parameters !== void 0 ? parameters : undefined, body });
73
73
  exports.ktConstructor = Object.assign(createConstructor, {
74
74
  write: write_kt_node_1.writeKtNodes,
75
75
  });
@@ -50,7 +50,7 @@ function createDocTag(tag, ...args) {
50
50
  opt.description = description;
51
51
  }
52
52
  }
53
- return new KtDocTag(Object.assign(Object.assign({}, opt), { tag, args: params }));
53
+ return new KtDocTag({ ...opt, tag, args: params });
54
54
  }
55
55
  const writeDocTags = (builder, nodes) => {
56
56
  (0, write_kt_node_1.writeKtNodes)(builder, nodes, { separator: '\n' });
@@ -30,7 +30,7 @@ class KtDoc extends node_1.KtNode {
30
30
  }
31
31
  }
32
32
  exports.KtDoc = KtDoc;
33
- const createDoc = (description, tags, options) => new KtDoc(Object.assign(Object.assign({}, options), { description, tags: tags !== null && tags !== void 0 ? tags : undefined }));
33
+ const createDoc = (description, tags, options) => new KtDoc({ ...options, description, tags: tags !== null && tags !== void 0 ? tags : undefined });
34
34
  function getDoc(baseDoc, options) {
35
35
  var _a, _b, _c, _d, _e, _f;
36
36
  const paramsWithDesc = (_b = (_a = options.parameters) === null || _a === void 0 ? void 0 : _a.filter((0, core_1.getIsInstanceOf)((parameter_1.KtParameter))).filter((x) => !!x.description)) !== null && _b !== void 0 ? _b : [];
@@ -44,7 +44,7 @@ class KtEnumValue extends node_1.KtNode {
44
44
  }
45
45
  }
46
46
  exports.KtEnumValue = KtEnumValue;
47
- const createEnumValue = (name, options) => new KtEnumValue(Object.assign(Object.assign({}, options), { name }));
47
+ const createEnumValue = (name, options) => new KtEnumValue({ ...options, name });
48
48
  exports.ktEnumValue = Object.assign(createEnumValue, {
49
49
  write: write_kt_enum_values_1.writeKtEnumValues,
50
50
  });
@@ -77,7 +77,7 @@ class KtEnum extends node_1.KtNode {
77
77
  }
78
78
  }
79
79
  exports.KtEnum = KtEnum;
80
- const createEnum = (name, values, options) => new KtEnum(Object.assign(Object.assign({}, options), { name, values: values !== null && values !== void 0 ? values : undefined }));
80
+ const createEnum = (name, values, options) => new KtEnum({ ...options, name, values: values !== null && values !== void 0 ? values : undefined });
81
81
  exports.ktEnum = Object.assign(createEnum, {
82
82
  write: write_kt_node_1.writeKtNodes,
83
83
  });
@@ -99,7 +99,7 @@ class KtFunction extends node_1.KtNode {
99
99
  }
100
100
  }
101
101
  exports.KtFunction = KtFunction;
102
- const createFunction = (name, options) => new KtFunction(Object.assign(Object.assign({}, options), { name }));
102
+ const createFunction = (name, options) => new KtFunction({ ...options, name });
103
103
  exports.ktFunction = Object.assign(createFunction, {
104
104
  write: write_kt_node_1.writeKtNodes,
105
105
  });
@@ -23,7 +23,7 @@ class KtGenericParameter extends node_1.KtNode {
23
23
  }
24
24
  }
25
25
  exports.KtGenericParameter = KtGenericParameter;
26
- const createGenericParameter = (name, options) => new KtGenericParameter(Object.assign(Object.assign({}, options), { name }));
26
+ const createGenericParameter = (name, options) => new KtGenericParameter({ ...options, name });
27
27
  exports.ktGenericParameter = Object.assign(createGenericParameter, {
28
28
  write: write_kt_generic_parameters_1.writeKtGenericParameters,
29
29
  });
@@ -13,7 +13,7 @@ class KtInitBlock extends node_1.KtNode {
13
13
  }
14
14
  }
15
15
  exports.KtInitBlock = KtInitBlock;
16
- const createInitBlock = (body, options) => new KtInitBlock(Object.assign(Object.assign({}, options), { body }));
16
+ const createInitBlock = (body, options) => new KtInitBlock({ ...options, body });
17
17
  exports.ktInitBlock = Object.assign(createInitBlock, {
18
18
  write: write_kt_node_1.writeKtNodes,
19
19
  });
@@ -62,7 +62,7 @@ class KtInterface extends node_1.KtNode {
62
62
  }
63
63
  }
64
64
  exports.KtInterface = KtInterface;
65
- const createInterface = (name, options) => new KtInterface(Object.assign(Object.assign({}, options), { name }));
65
+ const createInterface = (name, options) => new KtInterface({ ...options, name });
66
66
  exports.ktInterface = Object.assign(createInterface, {
67
67
  write: write_kt_node_1.writeKtNodes,
68
68
  });
@@ -38,7 +38,7 @@ class KtLambdaType extends node_1.KtNode {
38
38
  }
39
39
  }
40
40
  exports.KtLambdaType = KtLambdaType;
41
- const createLambdaType = (parameters, returnType, options) => new KtLambdaType(Object.assign(Object.assign({}, options), { parameters, returnType }));
41
+ const createLambdaType = (parameters, returnType, options) => new KtLambdaType({ ...options, parameters, returnType });
42
42
  exports.ktLambdaType = Object.assign(createLambdaType, {
43
43
  write: write_kt_node_1.writeKtNodes,
44
44
  });
@@ -30,7 +30,7 @@ class KtLambda extends node_1.KtNode {
30
30
  }
31
31
  }
32
32
  exports.KtLambda = KtLambda;
33
- const createLambda = (args, body, options) => new KtLambda(Object.assign(Object.assign({}, options), { arguments: args, body }));
33
+ const createLambda = (args, body, options) => new KtLambda({ ...options, arguments: args, body });
34
34
  exports.ktLambda = Object.assign(createLambda, {
35
35
  write: write_kt_node_1.writeKtNodes,
36
36
  });
@@ -49,8 +49,8 @@ class KtParameter extends node_1.KtNode {
49
49
  }
50
50
  }
51
51
  exports.KtParameter = KtParameter;
52
- const createParameter = (name, type, options) => new KtParameter(Object.assign(Object.assign({}, options), { name, type }));
53
- const createClassParameter = (name, type, options) => new KtParameter(Object.assign(Object.assign({}, options), { name, type }));
52
+ const createParameter = (name, type, options) => new KtParameter({ ...options, name, type });
53
+ const createClassParameter = (name, type, options) => new KtParameter({ ...options, name, type });
54
54
  exports.ktParameter = Object.assign(createParameter, {
55
55
  class: createClassParameter,
56
56
  write: write_kt_parameters_1.writeKtParameters,
@@ -134,7 +134,7 @@ class KtProperty extends node_1.KtNode {
134
134
  exports.KtProperty = KtProperty;
135
135
  const createPropertyGetter = (options) => new KtPropertyGetter(options !== null && options !== void 0 ? options : {});
136
136
  const createPropertySetter = (options) => new KtPropertySetter(options !== null && options !== void 0 ? options : {});
137
- const createProperty = (name, options) => new KtProperty(Object.assign(Object.assign({}, options), { name }));
137
+ const createProperty = (name, options) => new KtProperty({ ...options, name });
138
138
  exports.ktProperty = Object.assign(createProperty, {
139
139
  getter: createPropertyGetter,
140
140
  setter: createPropertySetter,
@@ -52,7 +52,7 @@ KtReference.addImportHandlers = [
52
52
  handler: (builder, reference) => builder.addImport(reference.name, reference.packageName),
53
53
  },
54
54
  ];
55
- const createReference = (name, packageName, options) => new KtReference(Object.assign(Object.assign({}, options), { name, packageName }));
55
+ const createReference = (name, packageName, options) => new KtReference({ ...options, name, packageName });
56
56
  const createFactory = (name, packageName) => {
57
57
  return Object.assign((options) => createReference(name, packageName, options), {
58
58
  refName: name,
@@ -61,7 +61,7 @@ const createFactory = (name, packageName) => {
61
61
  });
62
62
  };
63
63
  const createGenericFactory = (name, packageName) => {
64
- return Object.assign((generics, options) => createReference(name, packageName, Object.assign(Object.assign({}, options), { generics })), {
64
+ return Object.assign((generics, options) => createReference(name, packageName, { ...options, generics }), {
65
65
  refName: name,
66
66
  packageName,
67
67
  infer: (options) => createReference(name, packageName, options),
@@ -81,7 +81,7 @@ class KtString extends node_1.KtNode {
81
81
  }
82
82
  }
83
83
  exports.KtString = KtString;
84
- const createString = (value, options) => new KtString(Object.assign(Object.assign({}, options), { value }));
84
+ const createString = (value, options) => new KtString({ ...options, value });
85
85
  exports.ktString = Object.assign(createString, {
86
86
  write: write_kt_node_1.writeKtNodes,
87
87
  });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getKotlinBuilderOptions = void 0;
3
+ exports.getKotlinBuilderOptions = getKotlinBuilderOptions;
4
4
  const core_1 = require("@goast/core");
5
5
  const config_1 = require("../../config");
6
6
  const file_builder_1 = require("../../file-builder");
@@ -12,8 +12,7 @@ function getKotlinBuilderOptions(builder) {
12
12
  if (ktConfigSymbol in builder.options) {
13
13
  return builder.options[ktConfigSymbol];
14
14
  }
15
- const options = Object.assign(Object.assign(Object.assign({}, core_1.defaultOpenApiGeneratorConfig), config_1.defaultKotlinGeneratorConfig), builder.options);
15
+ const options = { ...core_1.defaultOpenApiGeneratorConfig, ...config_1.defaultKotlinGeneratorConfig, ...builder.options };
16
16
  builder[ktConfigSymbol] = options;
17
17
  return options;
18
18
  }
19
- exports.getKotlinBuilderOptions = getKotlinBuilderOptions;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toKtNode = void 0;
3
+ exports.toKtNode = toKtNode;
4
4
  const call_1 = require("../nodes/call");
5
5
  const string_1 = require("../nodes/string");
6
6
  const references_1 = require("../references");
@@ -19,4 +19,3 @@ function toKtNode(value) {
19
19
  }
20
20
  return (0, string_1.ktString)(String(value));
21
21
  }
22
- exports.toKtNode = toKtNode;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeKtAnnotations = void 0;
3
+ exports.writeKtAnnotations = writeKtAnnotations;
4
4
  const core_1 = require("@goast/core");
5
5
  const write_kt_node_1 = require("./write-kt-node");
6
6
  function writeKtAnnotations(builder, nodes, options) {
@@ -10,4 +10,3 @@ function writeKtAnnotations(builder, nodes, options) {
10
10
  b.append((options === null || options === void 0 ? void 0 : options.multiline) ? '\n' : ' ');
11
11
  });
12
12
  }
13
- exports.writeKtAnnotations = writeKtAnnotations;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeKtArguments = void 0;
3
+ exports.writeKtArguments = writeKtArguments;
4
4
  const core_1 = require("@goast/core");
5
5
  const write_kt_node_1 = require("./write-kt-node");
6
6
  const lambda_1 = require("../nodes/lambda");
@@ -30,4 +30,3 @@ function writeKtArguments(builder, nodes) {
30
30
  (0, write_kt_node_1.writeKtNode)(builder, lambda);
31
31
  }
32
32
  }
33
- exports.writeKtArguments = writeKtArguments;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeKtEnumValues = void 0;
3
+ exports.writeKtEnumValues = writeKtEnumValues;
4
4
  const core_1 = require("@goast/core");
5
5
  const write_kt_node_1 = require("./write-kt-node");
6
6
  function writeKtEnumValues(builder, nodes) {
@@ -14,4 +14,3 @@ function writeKtEnumValues(builder, nodes) {
14
14
  filteredNodes.some((v) => typeof v === 'object' && 'arguments' in v && Array.isArray(v.arguments) && v.arguments.length > 0);
15
15
  builder.forEach(filteredNodes, (b, v, i) => b.if(spacing && i > 0, (b) => b.ensurePreviousLineEmpty()).append((b) => (0, write_kt_node_1.writeKtNode)(b, v)), { separator: multiline ? ',\n' : ', ' });
16
16
  }
17
- exports.writeKtEnumValues = writeKtEnumValues;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeKtGenericParameters = void 0;
3
+ exports.writeKtGenericParameters = writeKtGenericParameters;
4
4
  const core_1 = require("@goast/core");
5
5
  const write_kt_node_1 = require("./write-kt-node");
6
6
  function writeKtGenericParameters(builder, nodes) {
@@ -9,4 +9,3 @@ function writeKtGenericParameters(builder, nodes) {
9
9
  return;
10
10
  builder.parenthesize('<>', (b) => b.forEach(filteredNodes, write_kt_node_1.writeKtNode, { separator: ', ' }));
11
11
  }
12
- exports.writeKtGenericParameters = writeKtGenericParameters;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeKtMembers = void 0;
3
+ exports.writeKtMembers = writeKtMembers;
4
4
  const core_1 = require("@goast/core");
5
5
  const write_kt_node_1 = require("./write-kt-node");
6
6
  const property_1 = require("../nodes/property");
@@ -13,4 +13,3 @@ function writeKtMembers(builder, members, options) {
13
13
  .append((b) => (0, write_kt_node_1.writeKtNode)(b, m))
14
14
  .if(i < filteredMembers.length - 1, (b) => b.ensurePreviousLineEmpty()), (b) => b.append((b) => (0, write_kt_node_1.writeKtNode)(b, m)).ensureCurrentLineEmpty()));
15
15
  }
16
- exports.writeKtMembers = writeKtMembers;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeKtNodes = exports.writeKtNode = void 0;
3
+ exports.writeKtNode = writeKtNode;
4
+ exports.writeKtNodes = writeKtNodes;
4
5
  const core_1 = require("@goast/core");
5
6
  const node_1 = require("../node");
6
7
  function writeKtNode(builder, node) {
@@ -11,7 +12,6 @@ function writeKtNode(builder, node) {
11
12
  builder.append(node);
12
13
  }
13
14
  }
14
- exports.writeKtNode = writeKtNode;
15
15
  function writeKtNodes(builder, nodes, options) {
16
16
  const filteredNodes = (0, core_1.toArray)(nodes).filter(core_1.notNullish);
17
17
  if (filteredNodes.length === 1) {
@@ -21,4 +21,3 @@ function writeKtNodes(builder, nodes, options) {
21
21
  builder.forEach(filteredNodes, writeKtNode, { separator: options === null || options === void 0 ? void 0 : options.separator });
22
22
  }
23
23
  }
24
- exports.writeKtNodes = writeKtNodes;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeKtParameters = void 0;
3
+ exports.writeKtParameters = writeKtParameters;
4
4
  const core_1 = require("@goast/core");
5
5
  const write_kt_node_1 = require("./write-kt-node");
6
6
  function writeKtParameters(builder, nodes) {
@@ -10,4 +10,3 @@ function writeKtParameters(builder, nodes) {
10
10
  const spacing = multiline && hasAnnotations;
11
11
  builder.parenthesize('()', (b) => b.forEach(filteredNodes, (b, p, i) => b.if(i > 0 && spacing, (b) => b.ensurePreviousLineEmpty()).append((b) => (0, write_kt_node_1.writeKtNode)(b, p)), { separator: multiline ? ',\n' : ', ' }), { multiline });
12
12
  }
13
- exports.writeKtParameters = writeKtParameters;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KotlinFileBuilder = exports.isKotlinAppendValue = void 0;
3
+ exports.KotlinFileBuilder = void 0;
4
+ exports.isKotlinAppendValue = isKotlinAppendValue;
4
5
  const core_1 = require("@goast/core");
5
6
  const node_1 = require("./ast/node");
6
7
  const config_1 = require("./config");
@@ -8,7 +9,6 @@ const import_collection_1 = require("./import-collection");
8
9
  function isKotlinAppendValue(value) {
9
10
  return (0, core_1.isAppendValue)(value) || value instanceof node_1.KtNode;
10
11
  }
11
- exports.isKotlinAppendValue = isKotlinAppendValue;
12
12
  class KotlinFileBuilder extends core_1.SourceBuilder {
13
13
  get options() {
14
14
  return super.options;
@@ -68,7 +68,7 @@ class DefaultKotlinModelGenerator extends file_generator_1.KotlinFileGenerator {
68
68
  annotations: [schema.deprecated ? ast_1.kt.annotation(ast_1.kt.refs.deprecated(), [ast_1.kt.argument(ast_1.kt.string(''))]) : null],
69
69
  classKind: parameters.length === 0 ? null : 'data',
70
70
  implements: inheritedSchemas.map((schema) => this.getType(ctx, { schema })),
71
- primaryConstructor: ast_1.kt.constructor(parameters.map((property) => this.getClassParameter(ctx, Object.assign(Object.assign({}, args), { inheritedSchemas, parameters, property })))),
71
+ primaryConstructor: ast_1.kt.constructor(parameters.map((property) => this.getClassParameter(ctx, { ...args, inheritedSchemas, parameters, property }))),
72
72
  members: [
73
73
  ...(schema.additionalProperties !== undefined && schema.additionalProperties !== false
74
74
  ? [
@@ -326,9 +326,7 @@ class DefaultKotlinModelGenerator extends file_generator_1.KotlinFileGenerator {
326
326
  property.schema.description !== undefined
327
327
  ? ast_1.kt.argument.named('description', ast_1.kt.string(property.schema.description))
328
328
  : null,
329
- property.schema.deprecated !== undefined
330
- ? ast_1.kt.argument.named('deprecated', ast_1.kt.toNode(property.schema.deprecated))
331
- : null,
329
+ property.schema.deprecated ? ast_1.kt.argument.named('deprecated', ast_1.kt.toNode(property.schema.deprecated)) : null,
332
330
  ])
333
331
  : null;
334
332
  }
@@ -415,7 +413,8 @@ class DefaultKotlinModelGenerator extends file_generator_1.KotlinFileGenerator {
415
413
  if (schema.kind === 'oneOf') {
416
414
  schema =
417
415
  ctx.config.oneOfBehavior === 'treat-as-any-of'
418
- ? Object.assign(Object.assign({}, schema), { kind: 'combined', anyOf: schema.oneOf, allOf: [], oneOf: undefined }) : Object.assign(Object.assign({}, schema), { kind: 'combined', allOf: schema.oneOf, anyOf: [], oneOf: undefined });
416
+ ? { ...schema, kind: 'combined', anyOf: schema.oneOf, allOf: [], oneOf: undefined }
417
+ : { ...schema, kind: 'combined', allOf: schema.oneOf, anyOf: [], oneOf: undefined };
419
418
  ctx.schema = schema;
420
419
  }
421
420
  if (schema.kind === 'object' || schema.kind === 'combined') {
@@ -11,7 +11,9 @@ class KotlinModelsGenerator extends core_1.OpenApiSchemasGenerationProviderBase
11
11
  }
12
12
  initResult() {
13
13
  return {
14
- models: {},
14
+ kotlin: {
15
+ models: {},
16
+ },
15
17
  };
16
18
  }
17
19
  buildContext(context, config) {
@@ -19,10 +21,13 @@ class KotlinModelsGenerator extends core_1.OpenApiSchemasGenerationProviderBase
19
21
  }
20
22
  generateSchema(ctx, schema) {
21
23
  const modelGenerator = this._modelGeneratorFactory.create();
22
- return modelGenerator.generate(Object.assign(Object.assign({}, ctx), { schema }));
24
+ return modelGenerator.generate({
25
+ ...ctx,
26
+ schema,
27
+ });
23
28
  }
24
29
  addSchemaResult(ctx, schema, result) {
25
- ctx.output.models[schema.id] = result;
30
+ ctx.output.kotlin.models[schema.id] = result;
26
31
  }
27
32
  }
28
33
  exports.KotlinModelsGenerator = KotlinModelsGenerator;
@@ -2,4 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultKotlinModelsGeneratorConfig = void 0;
4
4
  const config_1 = require("../../config");
5
- exports.defaultKotlinModelsGeneratorConfig = Object.assign(Object.assign({}, config_1.defaultKotlinGeneratorConfig), { packageName: 'com.openapi.generated', packageSuffix: '.model', oneOfBehavior: 'treat-as-any-of', addJacksonAnnotations: true, addJakartaValidationAnnotations: true, addSwaggerAnnotations: true });
5
+ exports.defaultKotlinModelsGeneratorConfig = {
6
+ ...config_1.defaultKotlinGeneratorConfig,
7
+ packageName: 'com.openapi.generated',
8
+ packageSuffix: '.model',
9
+ oneOfBehavior: 'treat-as-any-of',
10
+ addJacksonAnnotations: true,
11
+ addJakartaValidationAnnotations: true,
12
+ addSwaggerAnnotations: true,
13
+ };
@@ -2,4 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultKotlinOkHttp3ClientsGeneratorConfig = void 0;
4
4
  const config_1 = require("../../../config");
5
- exports.defaultKotlinOkHttp3ClientsGeneratorConfig = Object.assign(Object.assign({}, config_1.defaultKotlinGeneratorConfig), { packageName: 'com.openapi.generated', packageSuffix: '.api.client', infrastructurePackageName: { mode: 'append-full-package-name', value: '.infrastructure' } });
5
+ exports.defaultKotlinOkHttp3ClientsGeneratorConfig = {
6
+ ...config_1.defaultKotlinGeneratorConfig,
7
+ packageName: 'com.openapi.generated',
8
+ packageSuffix: '.api.client',
9
+ infrastructurePackageName: { mode: 'append-full-package-name', value: '.infrastructure' },
10
+ };
@@ -104,31 +104,31 @@ class DefaultKotlinOkHttp3Generator extends file_generator_1.KotlinFileGenerator
104
104
  return (0, core_1.appendValueGroup)([
105
105
  (0, core_1.builderTemplate) `val localVarResponse = ${ast_1.kt.call([(0, core_1.toCasing)(endpoint.name + '_WithHttpInfo', ctx.config.functionNameCasing)], parameters.map((x) => x.name))}`,
106
106
  '',
107
- (0, core_1.builderTemplate) `return when (localVarResponse.responseType) {${core_1.builderTemplate.indent `
107
+ (0, core_1.builderTemplate) `return when (localVarResponse.responseType) {${core_1.builderTemplate.indent `
108
108
  ${ctx.refs.responseType()}.Success -> ${responseSchema === undefined
109
109
  ? ast_1.kt.refs.unit()
110
110
  : (0, core_1.builderTemplate) `(localVarResponse as ${ctx.refs.success(['*'])}).data as ${this.getTypeUsage(ctx, {
111
111
  schema: responseSchema,
112
- })}`}
113
- ${ctx.refs.responseType()}.Informational -> throw ${ast_1.kt.refs.java.unsupportedOperationException()}("Client does not support Informational responses.")
114
- ${ctx.refs.responseType()}.Redirection -> throw ${ast_1.kt.refs.java.unsupportedOperationException()}("Client does not support Redirection responses.")
115
- ${ctx.refs.responseType()}.ClientError -> {${core_1.builderTemplate.indent `
116
- val localVarError = localVarResponse as ${ctx.refs.clientError(['*'])}
117
- throw ${ctx.refs.clientException()}(${core_1.builderTemplate.indent `
118
- "Client error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
119
- localVarError.statusCode,
120
- localVarResponse`}
121
- )`}
122
- }
123
-
124
- ${ctx.refs.responseType()}.ServerError -> {${core_1.builderTemplate.indent `
125
- val localVarError = localVarResponse as ${ctx.refs.serverError(['*'])}
126
- throw ${ctx.refs.serverException()}(${core_1.builderTemplate.indent `
127
- "Server error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
128
- localVarError.statusCode,
129
- localVarResponse`}
130
- )`}
131
- }`}
112
+ })}`}
113
+ ${ctx.refs.responseType()}.Informational -> throw ${ast_1.kt.refs.java.unsupportedOperationException()}("Client does not support Informational responses.")
114
+ ${ctx.refs.responseType()}.Redirection -> throw ${ast_1.kt.refs.java.unsupportedOperationException()}("Client does not support Redirection responses.")
115
+ ${ctx.refs.responseType()}.ClientError -> {${core_1.builderTemplate.indent `
116
+ val localVarError = localVarResponse as ${ctx.refs.clientError(['*'])}
117
+ throw ${ctx.refs.clientException()}(${core_1.builderTemplate.indent `
118
+ "Client error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
119
+ localVarError.statusCode,
120
+ localVarResponse`}
121
+ )`}
122
+ }
123
+
124
+ ${ctx.refs.responseType()}.ServerError -> {${core_1.builderTemplate.indent `
125
+ val localVarError = localVarResponse as ${ctx.refs.serverError(['*'])}
126
+ throw ${ctx.refs.serverException()}(${core_1.builderTemplate.indent `
127
+ "Server error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
128
+ localVarError.statusCode,
129
+ localVarResponse`}
130
+ )`}
131
+ }`}
132
132
  }`,
133
133
  ], '\n');
134
134
  }
@@ -205,8 +205,8 @@ class DefaultKotlinOkHttp3Generator extends file_generator_1.KotlinFileGenerator
205
205
  }
206
206
  result.values.push((0, core_1.builderTemplate) `val localVariableQuery: ${ctx.refs.multiValueMap()} = ${ast_1.kt.call([ast_1.kt.refs.mutableMapOf([ast_1.kt.refs.string(), ast_1.kt.refs.list([ast_1.kt.refs.string()])])], [])}${queryParameters.length === 0
207
207
  ? ''
208
- : core_1.builderTemplate.indent `
209
- .apply {${core_1.builderTemplate.indent `
208
+ : core_1.builderTemplate.indent `
209
+ .apply {${core_1.builderTemplate.indent `
210
210
  ${(0, core_1.appendValueGroup)(queryParameters.map((param) => {
211
211
  var _a;
212
212
  const paramName = (0, core_1.toCasing)(param.name, ctx.config.parameterNameCasing);
@@ -214,10 +214,10 @@ class DefaultKotlinOkHttp3Generator extends file_generator_1.KotlinFileGenerator
214
214
  const put = (0, core_1.builderTemplate) `put(${ast_1.kt.string(paramName)}, listOf(${paramName}${toString}))`;
215
215
  return param.required
216
216
  ? put
217
- : (0, core_1.builderTemplate) `if (${paramName} != null) {${core_1.builderTemplate.indent `
218
- ${put}`}
217
+ : (0, core_1.builderTemplate) `if (${paramName} != null) {${core_1.builderTemplate.indent `
218
+ ${put}`}
219
219
  }`;
220
- }), '\n')}`}
220
+ }), '\n')}`}
221
221
  }`}`);
222
222
  result.values.push('val localVariableHeaders: MutableMap<String, String> = mutableMapOf()');
223
223
  if (((_a = endpoint.requestBody) === null || _a === void 0 ? void 0 : _a.content[0]) !== undefined) {
@@ -249,7 +249,7 @@ class DefaultKotlinOkHttp3Generator extends file_generator_1.KotlinFileGenerator
249
249
  const type = this.getSchemaType(ctx, { schema });
250
250
  return type
251
251
  ? (0, core_1.createOverwriteProxy)(type, { nullable: nullable !== null && nullable !== void 0 ? nullable : type.nullable })
252
- : fallback !== null && fallback !== void 0 ? fallback : ast_1.kt.refs.any({ nullable });
252
+ : (fallback !== null && fallback !== void 0 ? fallback : ast_1.kt.refs.any({ nullable }));
253
253
  }
254
254
  getPackageName(ctx, args) {
255
255
  const packageSuffix = typeof ctx.config.packageSuffix === 'string' ? ctx.config.packageSuffix : ctx.config.packageSuffix(ctx.service);
@@ -272,7 +272,7 @@ class DefaultKotlinOkHttp3Generator extends file_generator_1.KotlinFileGenerator
272
272
  }
273
273
  getSchemaType(ctx, args) {
274
274
  const { schema } = args;
275
- return schema && ctx.input.models[schema.id].type;
275
+ return schema && ctx.input.kotlin.models[schema.id].type;
276
276
  }
277
277
  getAllParameters(ctx, args) {
278
278
  const { endpoint } = args;