@kattebak/openapi-generator-ts 1.0.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 (290) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +189 -0
  3. package/dist/cli/commands/generate.d.ts +23 -0
  4. package/dist/cli/commands/generate.d.ts.map +1 -0
  5. package/dist/cli/commands/generate.js +116 -0
  6. package/dist/cli/commands/generate.js.map +1 -0
  7. package/dist/cli/commands/list.d.ts +2 -0
  8. package/dist/cli/commands/list.d.ts.map +1 -0
  9. package/dist/cli/commands/list.js +26 -0
  10. package/dist/cli/commands/list.js.map +1 -0
  11. package/dist/cli/commands/validate.d.ts +6 -0
  12. package/dist/cli/commands/validate.d.ts.map +1 -0
  13. package/dist/cli/commands/validate.js +80 -0
  14. package/dist/cli/commands/validate.js.map +1 -0
  15. package/dist/cli/convert-template.d.ts +31 -0
  16. package/dist/cli/convert-template.d.ts.map +1 -0
  17. package/dist/cli/convert-template.js +204 -0
  18. package/dist/cli/convert-template.js.map +1 -0
  19. package/dist/cli/convert-template.test.d.ts +2 -0
  20. package/dist/cli/convert-template.test.d.ts.map +1 -0
  21. package/dist/cli/convert-template.test.js +74 -0
  22. package/dist/cli/convert-template.test.js.map +1 -0
  23. package/dist/cli/index.d.ts +3 -0
  24. package/dist/cli/index.d.ts.map +1 -0
  25. package/dist/cli/index.js +246 -0
  26. package/dist/cli/index.js.map +1 -0
  27. package/dist/core/config.d.ts +252 -0
  28. package/dist/core/config.d.ts.map +1 -0
  29. package/dist/core/config.js +31 -0
  30. package/dist/core/config.js.map +1 -0
  31. package/dist/core/generator.d.ts +99 -0
  32. package/dist/core/generator.d.ts.map +1 -0
  33. package/dist/core/generator.js +492 -0
  34. package/dist/core/generator.js.map +1 -0
  35. package/dist/core/index.d.ts +4 -0
  36. package/dist/core/index.d.ts.map +1 -0
  37. package/dist/core/index.js +4 -0
  38. package/dist/core/index.js.map +1 -0
  39. package/dist/core/types.d.ts +47 -0
  40. package/dist/core/types.d.ts.map +1 -0
  41. package/dist/core/types.js +5 -0
  42. package/dist/core/types.js.map +1 -0
  43. package/dist/generators/generators.test.d.ts +6 -0
  44. package/dist/generators/generators.test.d.ts.map +1 -0
  45. package/dist/generators/generators.test.js +247 -0
  46. package/dist/generators/generators.test.js.map +1 -0
  47. package/dist/generators/go.d.ts +10 -0
  48. package/dist/generators/go.d.ts.map +1 -0
  49. package/dist/generators/go.js +327 -0
  50. package/dist/generators/go.js.map +1 -0
  51. package/dist/generators/index.d.ts +29 -0
  52. package/dist/generators/index.d.ts.map +1 -0
  53. package/dist/generators/index.js +58 -0
  54. package/dist/generators/index.js.map +1 -0
  55. package/dist/generators/php.d.ts +14 -0
  56. package/dist/generators/php.d.ts.map +1 -0
  57. package/dist/generators/php.js +241 -0
  58. package/dist/generators/php.js.map +1 -0
  59. package/dist/generators/python.d.ts +10 -0
  60. package/dist/generators/python.d.ts.map +1 -0
  61. package/dist/generators/python.js +273 -0
  62. package/dist/generators/python.js.map +1 -0
  63. package/dist/generators/typescript-fetch.d.ts +14 -0
  64. package/dist/generators/typescript-fetch.d.ts.map +1 -0
  65. package/dist/generators/typescript-fetch.js +217 -0
  66. package/dist/generators/typescript-fetch.js.map +1 -0
  67. package/dist/index.d.ts +14 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +16 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/models/codegen-model.d.ts +123 -0
  72. package/dist/models/codegen-model.d.ts.map +1 -0
  73. package/dist/models/codegen-model.js +64 -0
  74. package/dist/models/codegen-model.js.map +1 -0
  75. package/dist/models/codegen-model.test.d.ts +6 -0
  76. package/dist/models/codegen-model.test.d.ts.map +1 -0
  77. package/dist/models/codegen-model.test.js +143 -0
  78. package/dist/models/codegen-model.test.js.map +1 -0
  79. package/dist/models/codegen-operation.d.ts +95 -0
  80. package/dist/models/codegen-operation.d.ts.map +1 -0
  81. package/dist/models/codegen-operation.js +54 -0
  82. package/dist/models/codegen-operation.js.map +1 -0
  83. package/dist/models/codegen-parameter.d.ts +86 -0
  84. package/dist/models/codegen-parameter.d.ts.map +1 -0
  85. package/dist/models/codegen-parameter.js +47 -0
  86. package/dist/models/codegen-parameter.js.map +1 -0
  87. package/dist/models/codegen-property.d.ts +95 -0
  88. package/dist/models/codegen-property.d.ts.map +1 -0
  89. package/dist/models/codegen-property.js +47 -0
  90. package/dist/models/codegen-property.js.map +1 -0
  91. package/dist/models/codegen-response.d.ts +64 -0
  92. package/dist/models/codegen-response.d.ts.map +1 -0
  93. package/dist/models/codegen-response.js +42 -0
  94. package/dist/models/codegen-response.js.map +1 -0
  95. package/dist/models/codegen-security.d.ts +34 -0
  96. package/dist/models/codegen-security.d.ts.map +1 -0
  97. package/dist/models/codegen-security.js +18 -0
  98. package/dist/models/codegen-security.js.map +1 -0
  99. package/dist/models/index.d.ts +8 -0
  100. package/dist/models/index.d.ts.map +1 -0
  101. package/dist/models/index.js +7 -0
  102. package/dist/models/index.js.map +1 -0
  103. package/dist/parser/index.d.ts +4 -0
  104. package/dist/parser/index.d.ts.map +1 -0
  105. package/dist/parser/index.js +4 -0
  106. package/dist/parser/index.js.map +1 -0
  107. package/dist/parser/openapi-parser.d.ts +71 -0
  108. package/dist/parser/openapi-parser.d.ts.map +1 -0
  109. package/dist/parser/openapi-parser.js +195 -0
  110. package/dist/parser/openapi-parser.js.map +1 -0
  111. package/dist/parser/openapi-parser.test.d.ts +6 -0
  112. package/dist/parser/openapi-parser.test.d.ts.map +1 -0
  113. package/dist/parser/openapi-parser.test.js +238 -0
  114. package/dist/parser/openapi-parser.test.js.map +1 -0
  115. package/dist/parser/operation-transformer.d.ts +95 -0
  116. package/dist/parser/operation-transformer.d.ts.map +1 -0
  117. package/dist/parser/operation-transformer.js +634 -0
  118. package/dist/parser/operation-transformer.js.map +1 -0
  119. package/dist/parser/schema-transformer.d.ts +134 -0
  120. package/dist/parser/schema-transformer.d.ts.map +1 -0
  121. package/dist/parser/schema-transformer.js +557 -0
  122. package/dist/parser/schema-transformer.js.map +1 -0
  123. package/dist/template/engine-adapter.d.ts +55 -0
  124. package/dist/template/engine-adapter.d.ts.map +1 -0
  125. package/dist/template/engine-adapter.js +178 -0
  126. package/dist/template/engine-adapter.js.map +1 -0
  127. package/dist/template/engine-adapter.test.d.ts +6 -0
  128. package/dist/template/engine-adapter.test.d.ts.map +1 -0
  129. package/dist/template/engine-adapter.test.js +186 -0
  130. package/dist/template/engine-adapter.test.js.map +1 -0
  131. package/dist/template/index.d.ts +5 -0
  132. package/dist/template/index.d.ts.map +1 -0
  133. package/dist/template/index.js +5 -0
  134. package/dist/template/index.js.map +1 -0
  135. package/dist/template/lambdas/indent-lambdas.d.ts +40 -0
  136. package/dist/template/lambdas/indent-lambdas.d.ts.map +1 -0
  137. package/dist/template/lambdas/indent-lambdas.js +98 -0
  138. package/dist/template/lambdas/indent-lambdas.js.map +1 -0
  139. package/dist/template/lambdas/index.d.ts +44 -0
  140. package/dist/template/lambdas/index.d.ts.map +1 -0
  141. package/dist/template/lambdas/index.js +79 -0
  142. package/dist/template/lambdas/index.js.map +1 -0
  143. package/dist/template/lambdas/string-lambdas.d.ts +78 -0
  144. package/dist/template/lambdas/string-lambdas.d.ts.map +1 -0
  145. package/dist/template/lambdas/string-lambdas.js +148 -0
  146. package/dist/template/lambdas/string-lambdas.js.map +1 -0
  147. package/dist/template/lambdas/string-lambdas.test.d.ts +6 -0
  148. package/dist/template/lambdas/string-lambdas.test.d.ts.map +1 -0
  149. package/dist/template/lambdas/string-lambdas.test.js +158 -0
  150. package/dist/template/lambdas/string-lambdas.test.js.map +1 -0
  151. package/dist/template/template-locator.d.ts +72 -0
  152. package/dist/template/template-locator.d.ts.map +1 -0
  153. package/dist/template/template-locator.js +173 -0
  154. package/dist/template/template-locator.js.map +1 -0
  155. package/dist/template/template-manager.d.ts +65 -0
  156. package/dist/template/template-manager.d.ts.map +1 -0
  157. package/dist/template/template-manager.js +185 -0
  158. package/dist/template/template-manager.js.map +1 -0
  159. package/package.json +67 -0
  160. package/templates/go/.travis.yml +8 -0
  161. package/templates/go/README.mustache +236 -0
  162. package/templates/go/api.mustache +452 -0
  163. package/templates/go/api_doc.mustache +92 -0
  164. package/templates/go/api_test.mustache +59 -0
  165. package/templates/go/client.mustache +761 -0
  166. package/templates/go/configuration.mustache +332 -0
  167. package/templates/go/git_push.sh.mustache +57 -0
  168. package/templates/go/gitignore.mustache +24 -0
  169. package/templates/go/go.mod.mustache +16 -0
  170. package/templates/go/go.sum.mustache +19 -0
  171. package/templates/go/model.mustache +21 -0
  172. package/templates/go/model_anyof.mustache +93 -0
  173. package/templates/go/model_doc.mustache +97 -0
  174. package/templates/go/model_enum.mustache +101 -0
  175. package/templates/go/model_oneof.mustache +160 -0
  176. package/templates/go/model_simple.mustache +572 -0
  177. package/templates/go/nullable_model.mustache +35 -0
  178. package/templates/go/openapi.mustache +1 -0
  179. package/templates/go/partial_header.mustache +18 -0
  180. package/templates/go/response.mustache +38 -0
  181. package/templates/go/signing.mustache +453 -0
  182. package/templates/go/utils.mustache +352 -0
  183. package/templates/php/.php-cs-fixer.dist.php +29 -0
  184. package/templates/php/.travis.yml +8 -0
  185. package/templates/php/ApiException.mustache +111 -0
  186. package/templates/php/Configuration.mustache +606 -0
  187. package/templates/php/FormDataProcessor.mustache +238 -0
  188. package/templates/php/HeaderSelector.mustache +265 -0
  189. package/templates/php/ModelInterface.mustache +103 -0
  190. package/templates/php/ObjectSerializer.mustache +591 -0
  191. package/templates/php/README.mustache +151 -0
  192. package/templates/php/api.mustache +891 -0
  193. package/templates/php/api_doc.mustache +105 -0
  194. package/templates/php/api_test.mustache +80 -0
  195. package/templates/php/composer.mustache +44 -0
  196. package/templates/php/git_push.sh.mustache +57 -0
  197. package/templates/php/gitignore +15 -0
  198. package/templates/php/libraries/psr-18/ApiException.mustache +114 -0
  199. package/templates/php/libraries/psr-18/DebugPlugin.mustache +93 -0
  200. package/templates/php/libraries/psr-18/README.mustache +161 -0
  201. package/templates/php/libraries/psr-18/api.mustache +833 -0
  202. package/templates/php/libraries/psr-18/api_doc.mustache +79 -0
  203. package/templates/php/libraries/psr-18/composer.mustache +56 -0
  204. package/templates/php/model.mustache +47 -0
  205. package/templates/php/model_doc.mustache +10 -0
  206. package/templates/php/model_enum.mustache +33 -0
  207. package/templates/php/model_generic.mustache +565 -0
  208. package/templates/php/model_test.mustache +88 -0
  209. package/templates/php/partial_header.mustache +18 -0
  210. package/templates/php/php_doc_auth_partial.mustache +23 -0
  211. package/templates/php/phpunit.xml.mustache +18 -0
  212. package/templates/python/README.mustache +60 -0
  213. package/templates/python/README_onlypackage.mustache +50 -0
  214. package/templates/python/__init__.mustache +1 -0
  215. package/templates/python/__init__api.mustache +19 -0
  216. package/templates/python/__init__model.mustache +22 -0
  217. package/templates/python/__init__package.mustache +49 -0
  218. package/templates/python/api.mustache +244 -0
  219. package/templates/python/api_client.mustache +822 -0
  220. package/templates/python/api_doc.mustache +81 -0
  221. package/templates/python/api_doc_example.mustache +38 -0
  222. package/templates/python/api_response.mustache +21 -0
  223. package/templates/python/api_test.mustache +48 -0
  224. package/templates/python/asyncio/rest.mustache +209 -0
  225. package/templates/python/common_README.mustache +85 -0
  226. package/templates/python/configuration.mustache +806 -0
  227. package/templates/python/exceptions.mustache +210 -0
  228. package/templates/python/exports_api.mustache +3 -0
  229. package/templates/python/exports_model.mustache +3 -0
  230. package/templates/python/exports_package.mustache +20 -0
  231. package/templates/python/git_push.sh.mustache +57 -0
  232. package/templates/python/github-workflow.mustache +35 -0
  233. package/templates/python/gitignore.mustache +66 -0
  234. package/templates/python/gitlab-ci.mustache +31 -0
  235. package/templates/python/httpx/rest.mustache +190 -0
  236. package/templates/python/model.mustache +16 -0
  237. package/templates/python/model_anyof.mustache +182 -0
  238. package/templates/python/model_doc.mustache +40 -0
  239. package/templates/python/model_enum.mustache +36 -0
  240. package/templates/python/model_generic.mustache +403 -0
  241. package/templates/python/model_oneof.mustache +209 -0
  242. package/templates/python/model_test.mustache +60 -0
  243. package/templates/python/partial_api.mustache +52 -0
  244. package/templates/python/partial_api_args.mustache +18 -0
  245. package/templates/python/partial_header.mustache +19 -0
  246. package/templates/python/py.typed.mustache +1 -0
  247. package/templates/python/pyproject.mustache +172 -0
  248. package/templates/python/python_doc_auth_partial.mustache +108 -0
  249. package/templates/python/requirements.mustache +23 -0
  250. package/templates/python/rest.mustache +254 -0
  251. package/templates/python/setup.mustache +60 -0
  252. package/templates/python/setup_cfg.mustache +2 -0
  253. package/templates/python/signing.mustache +422 -0
  254. package/templates/python/test-requirements.mustache +6 -0
  255. package/templates/python/tornado/rest.mustache +148 -0
  256. package/templates/python/tox.mustache +9 -0
  257. package/templates/python/travis.mustache +17 -0
  258. package/templates/typescript-fetch/ApiEntitiesRecord.mustache +26 -0
  259. package/templates/typescript-fetch/ApiEntitiesReducer.mustache +21 -0
  260. package/templates/typescript-fetch/ApiEntitiesSelectors.mustache +5 -0
  261. package/templates/typescript-fetch/README.mustache +127 -0
  262. package/templates/typescript-fetch/allSagas.mustache +19 -0
  263. package/templates/typescript-fetch/api_doc.mustache +63 -0
  264. package/templates/typescript-fetch/api_example.mustache +44 -0
  265. package/templates/typescript-fetch/apis.index.mustache +16 -0
  266. package/templates/typescript-fetch/apis.mustache +483 -0
  267. package/templates/typescript-fetch/apisAssignQueryParam.mustache +12 -0
  268. package/templates/typescript-fetch/gitignore +4 -0
  269. package/templates/typescript-fetch/index.mustache +17 -0
  270. package/templates/typescript-fetch/licenseInfo.mustache +11 -0
  271. package/templates/typescript-fetch/modelEnum.mustache +28 -0
  272. package/templates/typescript-fetch/modelEnumInterfaces.mustache +37 -0
  273. package/templates/typescript-fetch/modelGeneric.mustache +261 -0
  274. package/templates/typescript-fetch/modelGenericInterfaces.mustache +50 -0
  275. package/templates/typescript-fetch/modelOneOf.mustache +255 -0
  276. package/templates/typescript-fetch/modelOneOfInterfaces.mustache +6 -0
  277. package/templates/typescript-fetch/model_doc.mustache +41 -0
  278. package/templates/typescript-fetch/models.index.mustache +32 -0
  279. package/templates/typescript-fetch/models.mustache +24 -0
  280. package/templates/typescript-fetch/npmignore.mustache +1 -0
  281. package/templates/typescript-fetch/package.mustache +43 -0
  282. package/templates/typescript-fetch/recordGeneric.mustache +295 -0
  283. package/templates/typescript-fetch/records.mustache +17 -0
  284. package/templates/typescript-fetch/runtime.mustache +424 -0
  285. package/templates/typescript-fetch/runtimeSagasAndRecords.mustache +120 -0
  286. package/templates/typescript-fetch/sagaApiManager.mustache +28 -0
  287. package/templates/typescript-fetch/sagas.mustache +245 -0
  288. package/templates/typescript-fetch/sourceLibraryIndex.mustache +1 -0
  289. package/templates/typescript-fetch/tsconfig.esm.mustache +7 -0
  290. package/templates/typescript-fetch/tsconfig.mustache +25 -0
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Generator tests
3
+ * Tests for generator metadata, type mappings, and reserved words
4
+ */
5
+ import assert from "node:assert";
6
+ import { describe, it } from "node:test";
7
+ import { createGoMetadata, createPhpMetadata, createPythonMetadata, createTypescriptFetchMetadata, getGenerator, hasGenerator, listGenerators, } from "./index.js";
8
+ describe("Generator Registry", () => {
9
+ it("should list all available generators", () => {
10
+ const generators = listGenerators();
11
+ assert.ok(generators.includes("typescript-fetch"));
12
+ assert.ok(generators.includes("typescript"));
13
+ assert.ok(generators.includes("python"));
14
+ assert.ok(generators.includes("go"));
15
+ assert.ok(generators.includes("php"));
16
+ });
17
+ it("should check if generator exists", () => {
18
+ assert.strictEqual(hasGenerator("typescript-fetch"), true);
19
+ assert.strictEqual(hasGenerator("python"), true);
20
+ assert.strictEqual(hasGenerator("go"), true);
21
+ assert.strictEqual(hasGenerator("php"), true);
22
+ assert.strictEqual(hasGenerator("nonexistent"), false);
23
+ });
24
+ it("should get generator by name", () => {
25
+ const tsGenerator = getGenerator("typescript-fetch");
26
+ assert.ok(tsGenerator);
27
+ assert.strictEqual(tsGenerator.name, "typescript-fetch");
28
+ assert.strictEqual(tsGenerator.language, "TypeScript");
29
+ });
30
+ it("should return undefined for nonexistent generator", () => {
31
+ const generator = getGenerator("nonexistent");
32
+ assert.strictEqual(generator, undefined);
33
+ });
34
+ });
35
+ describe("TypeScript Fetch Generator", () => {
36
+ const metadata = createTypescriptFetchMetadata();
37
+ it("should have correct metadata", () => {
38
+ assert.strictEqual(metadata.name, "typescript-fetch");
39
+ assert.strictEqual(metadata.type, "client");
40
+ assert.strictEqual(metadata.language, "TypeScript");
41
+ assert.strictEqual(metadata.modelFileExtension, ".ts");
42
+ assert.strictEqual(metadata.apiFileExtension, ".ts");
43
+ });
44
+ it("should have correct type mappings", () => {
45
+ const typeMappings = metadata.defaultTypeMappings;
46
+ assert.strictEqual(typeMappings.integer, "number");
47
+ assert.strictEqual(typeMappings.long, "number");
48
+ assert.strictEqual(typeMappings.float, "number");
49
+ assert.strictEqual(typeMappings.double, "number");
50
+ assert.strictEqual(typeMappings.string, "string");
51
+ assert.strictEqual(typeMappings.boolean, "boolean");
52
+ assert.strictEqual(typeMappings.binary, "Blob");
53
+ assert.strictEqual(typeMappings.file, "File");
54
+ assert.strictEqual(typeMappings.array, "Array");
55
+ assert.strictEqual(typeMappings.object, "object");
56
+ });
57
+ it("should have reserved words", () => {
58
+ const reservedWords = metadata.reservedWords;
59
+ assert.ok(reservedWords.has("class"));
60
+ assert.ok(reservedWords.has("function"));
61
+ assert.ok(reservedWords.has("return"));
62
+ assert.ok(reservedWords.has("const"));
63
+ assert.ok(reservedWords.has("let"));
64
+ assert.ok(reservedWords.has("interface"));
65
+ assert.ok(reservedWords.has("type"));
66
+ });
67
+ it("should have supporting files", () => {
68
+ assert.ok(metadata.supportingFiles.length > 0);
69
+ const fileNames = metadata.supportingFiles.map((f) => f.destinationFilename);
70
+ assert.ok(fileNames.includes("index.ts"));
71
+ assert.ok(fileNames.includes("runtime.ts"));
72
+ assert.ok(fileNames.includes("configuration.ts"));
73
+ });
74
+ it("should have libraries defined", () => {
75
+ assert.ok(metadata.libraries?.includes("default"));
76
+ assert.strictEqual(metadata.defaultLibrary, "default");
77
+ });
78
+ });
79
+ describe("Python Generator", () => {
80
+ const metadata = createPythonMetadata();
81
+ it("should have correct metadata", () => {
82
+ assert.strictEqual(metadata.name, "python");
83
+ assert.strictEqual(metadata.type, "client");
84
+ assert.strictEqual(metadata.language, "Python");
85
+ assert.strictEqual(metadata.modelFileExtension, ".py");
86
+ assert.strictEqual(metadata.apiFileExtension, ".py");
87
+ });
88
+ it("should have correct type mappings", () => {
89
+ const typeMappings = metadata.defaultTypeMappings;
90
+ assert.strictEqual(typeMappings.integer, "int");
91
+ assert.strictEqual(typeMappings.long, "int");
92
+ assert.strictEqual(typeMappings.float, "float");
93
+ assert.strictEqual(typeMappings.string, "str");
94
+ assert.strictEqual(typeMappings.boolean, "bool");
95
+ assert.strictEqual(typeMappings.array, "List");
96
+ assert.strictEqual(typeMappings.map, "Dict");
97
+ });
98
+ it("should have Python reserved words", () => {
99
+ const reservedWords = metadata.reservedWords;
100
+ assert.ok(reservedWords.has("and"));
101
+ assert.ok(reservedWords.has("or"));
102
+ assert.ok(reservedWords.has("not"));
103
+ assert.ok(reservedWords.has("def"));
104
+ assert.ok(reservedWords.has("class"));
105
+ assert.ok(reservedWords.has("import"));
106
+ assert.ok(reservedWords.has("from"));
107
+ assert.ok(reservedWords.has("async"));
108
+ assert.ok(reservedWords.has("await"));
109
+ assert.ok(reservedWords.has("True"));
110
+ assert.ok(reservedWords.has("False"));
111
+ assert.ok(reservedWords.has("None"));
112
+ });
113
+ it("should have pydantic-specific reserved words", () => {
114
+ const reservedWords = metadata.reservedWords;
115
+ assert.ok(reservedWords.has("field"));
116
+ });
117
+ it("should have import mappings", () => {
118
+ const importMappings = metadata.defaultImportMappings;
119
+ assert.strictEqual(importMappings.datetime, "datetime");
120
+ assert.strictEqual(importMappings.date, "datetime");
121
+ assert.strictEqual(importMappings.Decimal, "decimal");
122
+ });
123
+ it("should have libraries defined", () => {
124
+ assert.ok(metadata.libraries?.includes("urllib3"));
125
+ assert.ok(metadata.libraries?.includes("asyncio"));
126
+ assert.ok(metadata.libraries?.includes("httpx"));
127
+ assert.strictEqual(metadata.defaultLibrary, "urllib3");
128
+ });
129
+ });
130
+ describe("Go Generator", () => {
131
+ const metadata = createGoMetadata();
132
+ it("should have correct metadata", () => {
133
+ assert.strictEqual(metadata.name, "go");
134
+ assert.strictEqual(metadata.type, "client");
135
+ assert.strictEqual(metadata.language, "Go");
136
+ assert.strictEqual(metadata.modelFileExtension, ".go");
137
+ assert.strictEqual(metadata.apiFileExtension, ".go");
138
+ });
139
+ it("should have correct type mappings", () => {
140
+ const typeMappings = metadata.defaultTypeMappings;
141
+ assert.strictEqual(typeMappings.integer, "int32");
142
+ assert.strictEqual(typeMappings.long, "int64");
143
+ assert.strictEqual(typeMappings.float, "float32");
144
+ assert.strictEqual(typeMappings.double, "float64");
145
+ assert.strictEqual(typeMappings.boolean, "bool");
146
+ assert.strictEqual(typeMappings.string, "string");
147
+ assert.strictEqual(typeMappings.DateTime, "time.Time");
148
+ assert.strictEqual(typeMappings.File, "*os.File");
149
+ assert.strictEqual(typeMappings.object, "map[string]interface{}");
150
+ assert.strictEqual(typeMappings.AnyType, "interface{}");
151
+ });
152
+ it("should have Go reserved words", () => {
153
+ const reservedWords = metadata.reservedWords;
154
+ // Keywords
155
+ assert.ok(reservedWords.has("func"));
156
+ assert.ok(reservedWords.has("interface"));
157
+ assert.ok(reservedWords.has("struct"));
158
+ assert.ok(reservedWords.has("map"));
159
+ assert.ok(reservedWords.has("chan"));
160
+ assert.ok(reservedWords.has("go"));
161
+ assert.ok(reservedWords.has("defer"));
162
+ assert.ok(reservedWords.has("select"));
163
+ assert.ok(reservedWords.has("range"));
164
+ assert.ok(reservedWords.has("nil"));
165
+ assert.ok(reservedWords.has("error"));
166
+ // Data types
167
+ assert.ok(reservedWords.has("int"));
168
+ assert.ok(reservedWords.has("int32"));
169
+ assert.ok(reservedWords.has("int64"));
170
+ assert.ok(reservedWords.has("float32"));
171
+ assert.ok(reservedWords.has("float64"));
172
+ assert.ok(reservedWords.has("bool"));
173
+ assert.ok(reservedWords.has("string"));
174
+ });
175
+ it("should have import mappings", () => {
176
+ const importMappings = metadata.defaultImportMappings;
177
+ assert.strictEqual(importMappings["time.Time"], "time");
178
+ assert.strictEqual(importMappings["*os.File"], "os");
179
+ });
180
+ it("should have supporting files for go.mod", () => {
181
+ const fileNames = metadata.supportingFiles.map((f) => f.destinationFilename);
182
+ assert.ok(fileNames.includes("go.mod"));
183
+ assert.ok(fileNames.includes("go.sum"));
184
+ assert.ok(fileNames.includes("client.go"));
185
+ assert.ok(fileNames.includes("configuration.go"));
186
+ });
187
+ });
188
+ describe("PHP Generator", () => {
189
+ const metadata = createPhpMetadata();
190
+ it("should have correct metadata", () => {
191
+ assert.strictEqual(metadata.name, "php");
192
+ assert.strictEqual(metadata.type, "client");
193
+ assert.strictEqual(metadata.language, "PHP");
194
+ assert.strictEqual(metadata.modelFileExtension, ".php");
195
+ assert.strictEqual(metadata.apiFileExtension, ".php");
196
+ });
197
+ it("should have correct type mappings", () => {
198
+ const typeMappings = metadata.defaultTypeMappings;
199
+ assert.strictEqual(typeMappings.integer, "int");
200
+ assert.strictEqual(typeMappings.long, "int");
201
+ assert.strictEqual(typeMappings.float, "float");
202
+ assert.strictEqual(typeMappings.double, "float");
203
+ assert.strictEqual(typeMappings.string, "string");
204
+ assert.strictEqual(typeMappings.boolean, "bool");
205
+ assert.strictEqual(typeMappings.date, "\\DateTime");
206
+ assert.strictEqual(typeMappings.DateTime, "\\DateTime");
207
+ assert.strictEqual(typeMappings.file, "\\SplFileObject");
208
+ assert.strictEqual(typeMappings.array, "array");
209
+ assert.strictEqual(typeMappings.object, "object");
210
+ assert.strictEqual(typeMappings.AnyType, "mixed");
211
+ });
212
+ it("should have PHP reserved words", () => {
213
+ const reservedWords = metadata.reservedWords;
214
+ assert.ok(reservedWords.has("abstract"));
215
+ assert.ok(reservedWords.has("class"));
216
+ assert.ok(reservedWords.has("function"));
217
+ assert.ok(reservedWords.has("interface"));
218
+ assert.ok(reservedWords.has("trait"));
219
+ assert.ok(reservedWords.has("public"));
220
+ assert.ok(reservedWords.has("private"));
221
+ assert.ok(reservedWords.has("protected"));
222
+ assert.ok(reservedWords.has("namespace"));
223
+ assert.ok(reservedWords.has("use"));
224
+ assert.ok(reservedWords.has("echo"));
225
+ assert.ok(reservedWords.has("print"));
226
+ });
227
+ it("should have API method local variables as reserved", () => {
228
+ const reservedWords = metadata.reservedWords;
229
+ assert.ok(reservedWords.has("resourcePath"));
230
+ assert.ok(reservedWords.has("httpBody"));
231
+ assert.ok(reservedWords.has("queryParams"));
232
+ assert.ok(reservedWords.has("headerParams"));
233
+ assert.ok(reservedWords.has("formParams"));
234
+ });
235
+ it("should have libraries defined", () => {
236
+ assert.ok(metadata.libraries?.includes("guzzle"));
237
+ assert.ok(metadata.libraries?.includes("psr-18"));
238
+ assert.strictEqual(metadata.defaultLibrary, "guzzle");
239
+ });
240
+ it("should have supporting files for composer", () => {
241
+ const fileNames = metadata.supportingFiles.map((f) => f.destinationFilename);
242
+ assert.ok(fileNames.includes("composer.json"));
243
+ assert.ok(fileNames.includes("ApiException.php"));
244
+ assert.ok(fileNames.includes("Configuration.php"));
245
+ });
246
+ });
247
+ //# sourceMappingURL=generators.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generators.test.js","sourceRoot":"","sources":["../../src/generators/generators.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { CodegenConfig, GeneratorMetadata } from "../core/config.js";
2
+ /**
3
+ * Create Go generator metadata
4
+ */
5
+ export declare function createGoMetadata(): GeneratorMetadata;
6
+ /**
7
+ * Get Go-specific additional properties
8
+ */
9
+ export declare function getGoAdditionalProperties(config: CodegenConfig): Record<string, unknown>;
10
+ //# sourceMappingURL=go.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/generators/go.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAyO1E;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,iBAAiB,CAyFpD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,MAAM,EAAE,aAAa,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgCzB"}
@@ -0,0 +1,327 @@
1
+ /**
2
+ * Go Generator
3
+ * Generates Go client code
4
+ */
5
+ import { pascalCase, snakeCase } from "es-toolkit/string";
6
+ /**
7
+ * Go reserved words
8
+ * From https://golang.org/ref/spec#Keywords
9
+ * Plus common data types and error
10
+ */
11
+ const GO_RESERVED_WORDS = new Set([
12
+ // Data types
13
+ "string",
14
+ "bool",
15
+ "uint",
16
+ "uint8",
17
+ "uint16",
18
+ "uint32",
19
+ "uint64",
20
+ "int",
21
+ "int8",
22
+ "int16",
23
+ "int32",
24
+ "int64",
25
+ "float32",
26
+ "float64",
27
+ "complex64",
28
+ "complex128",
29
+ "rune",
30
+ "byte",
31
+ "uintptr",
32
+ // Keywords
33
+ "break",
34
+ "default",
35
+ "func",
36
+ "interface",
37
+ "select",
38
+ "case",
39
+ "defer",
40
+ "go",
41
+ "map",
42
+ "struct",
43
+ "chan",
44
+ "else",
45
+ "goto",
46
+ "package",
47
+ "switch",
48
+ "const",
49
+ "fallthrough",
50
+ "if",
51
+ "range",
52
+ "type",
53
+ "continue",
54
+ "for",
55
+ "import",
56
+ "return",
57
+ "var",
58
+ "error",
59
+ "nil",
60
+ ]);
61
+ /**
62
+ * Go type mappings
63
+ */
64
+ const GO_TYPE_MAPPINGS = {
65
+ // Primitives
66
+ integer: "int32",
67
+ int32: "int32",
68
+ int64: "int64",
69
+ long: "int64",
70
+ number: "float32",
71
+ float: "float32",
72
+ double: "float64",
73
+ decimal: "float64",
74
+ boolean: "bool",
75
+ string: "string",
76
+ // Special strings
77
+ UUID: "string",
78
+ URI: "string",
79
+ date: "string",
80
+ password: "string",
81
+ // DateTime
82
+ DateTime: "time.Time",
83
+ // File/Binary
84
+ File: "*os.File",
85
+ file: "*os.File",
86
+ binary: "*os.File",
87
+ ByteArray: "string",
88
+ // Null
89
+ null: "nil",
90
+ // Object/Any
91
+ object: "map[string]interface{}",
92
+ AnyType: "interface{}",
93
+ array: "[]",
94
+ };
95
+ /**
96
+ * Go import mappings
97
+ */
98
+ const GO_IMPORT_MAPPINGS = {
99
+ "time.Time": "time",
100
+ "*os.File": "os",
101
+ };
102
+ /**
103
+ * Helper to convert to underscore (snake_case) - matches Java underscore() function
104
+ */
105
+ function underscore(name) {
106
+ return snakeCase(name);
107
+ }
108
+ /**
109
+ * Go-specific API class name conversion
110
+ * Creates "PetsAPI" style names (uppercase API suffix)
111
+ */
112
+ function toGoApiClassName(tag, suffix) {
113
+ return pascalCase(tag) + suffix;
114
+ }
115
+ /**
116
+ * Go-specific model filename conversion
117
+ * Creates "model_pet.go" style filenames
118
+ */
119
+ function toGoModelFilename(modelName) {
120
+ return `model_${underscore(modelName)}.go`;
121
+ }
122
+ /**
123
+ * Go-specific API filename conversion
124
+ * Creates "api_pets.go" style filenames
125
+ */
126
+ function toGoApiFilename(className) {
127
+ // Remove the API suffix before converting to snake_case
128
+ const baseName = className.replace(/API$/i, "");
129
+ const filename = `api_${underscore(baseName)}.go`;
130
+ console.log(`API Filename: ${className} -> ${filename}`);
131
+ return filename;
132
+ }
133
+ /**
134
+ * Go-specific operation ID conversion
135
+ * Go exported methods must be PascalCase
136
+ */
137
+ function toGoOperationId(name) {
138
+ return pascalCase(name);
139
+ }
140
+ /**
141
+ * Go-specific variable name conversion
142
+ * Go exported fields must be PascalCase (capitalized) to be accessible from other packages
143
+ */
144
+ function toGoVarName(name) {
145
+ // Handle reserved words
146
+ if (GO_RESERVED_WORDS.has(name.toLowerCase())) {
147
+ return `${pascalCase(name)}_`;
148
+ }
149
+ // If it's all upper case, keep it (e.g., ID, URL)
150
+ if (/^[A-Z_]+$/.test(name)) {
151
+ return name;
152
+ }
153
+ // Convert to PascalCase for Go exported fields
154
+ return pascalCase(name);
155
+ }
156
+ /**
157
+ * Post-process an operation for Go-specific transformations.
158
+ * Sets httpMethod to PascalCase (e.g. "Post") for http.MethodPost.
159
+ */
160
+ function postProcessGoOperation(operation) {
161
+ console.log(`Processing operation: ${operation.operationId}`);
162
+ operation.httpMethod = pascalCase(operation.httpMethod);
163
+ // Go-specific parameter processing
164
+ for (const param of operation.allParams) {
165
+ // Set x-export-param-name for method builder pattern
166
+ // e.g. func (r Request) Pet(pet Pet) Request
167
+ param.vendorExtensions["x-export-param-name"] = pascalCase(param.paramName);
168
+ }
169
+ // Add imports if needed
170
+ if (operation.pathParams.length > 0) {
171
+ operation.imports.add("strings");
172
+ }
173
+ }
174
+ /**
175
+ * Post-process a property for Go-specific transformations.
176
+ * Sets x-go-base-type and x-go-datatag vendor extensions.
177
+ */
178
+ function postProcessGoProperty(property) {
179
+ // x-go-base-type is the original data type (before nullable transformation)
180
+ property.vendorExtensions["x-go-base-type"] = property.dataType;
181
+ // Build the JSON struct tag
182
+ let tag = `json:"${property.baseName}`;
183
+ if (!property.required) {
184
+ tag += ",omitempty";
185
+ }
186
+ tag += '"';
187
+ // Wrap in backticks for Go struct tag syntax
188
+ property.vendorExtensions["x-go-datatag"] = ` \`${tag}\``;
189
+ }
190
+ /**
191
+ * Post-process a model for Go-specific transformations.
192
+ * Sets x-go-generate-marshal-json and x-go-generate-unmarshal-json vendor extensions.
193
+ * Also adds required imports (bytes, fmt) for marshal/unmarshal methods.
194
+ */
195
+ function postProcessGoModel(model) {
196
+ // Enable MarshalJSON/UnmarshalJSON generation for all models
197
+ // This matches the Java generator's default behavior
198
+ model.vendorExtensions["x-go-generate-marshal-json"] = true;
199
+ model.vendorExtensions["x-go-generate-unmarshal-json"] = true;
200
+ // Add imports needed for MarshalJSON/UnmarshalJSON
201
+ // bytes is used for bytes.NewReader in UnmarshalJSON
202
+ // fmt is used for fmt.Errorf when validating required properties
203
+ model.imports.add("bytes");
204
+ model.imports.add("fmt");
205
+ }
206
+ /**
207
+ * Create Go generator metadata
208
+ */
209
+ export function createGoMetadata() {
210
+ return {
211
+ name: "go",
212
+ description: "Generates Go client code",
213
+ type: "client",
214
+ language: "Go",
215
+ libraries: ["default"],
216
+ defaultLibrary: "default",
217
+ embeddedTemplateDir: "go",
218
+ modelFileExtension: ".go",
219
+ apiFileExtension: ".go",
220
+ // Go uses flat structure - no subdirectories
221
+ defaultApiPackage: "",
222
+ defaultModelPackage: "",
223
+ modelTemplateFile: "model.mustache",
224
+ apiTemplateFile: "api.mustache",
225
+ modelDocTemplateFile: "model_doc.mustache",
226
+ apiDocTemplateFile: "api_doc.mustache",
227
+ // Go naming conventions
228
+ apiNameSuffix: "API",
229
+ toApiClassName: toGoApiClassName,
230
+ toModelFilename: toGoModelFilename,
231
+ toApiFilename: toGoApiFilename,
232
+ toVarName: toGoVarName,
233
+ toOperationId: toGoOperationId,
234
+ postProcessProperty: postProcessGoProperty,
235
+ postProcessModel: postProcessGoModel,
236
+ postProcessOperation: postProcessGoOperation,
237
+ supportingFiles: [
238
+ {
239
+ templateFile: "openapi.mustache",
240
+ folder: "api",
241
+ destinationFilename: "openapi.yaml",
242
+ },
243
+ {
244
+ templateFile: "README.mustache",
245
+ folder: "",
246
+ destinationFilename: "README.md",
247
+ },
248
+ {
249
+ templateFile: "gitignore.mustache",
250
+ folder: "",
251
+ destinationFilename: ".gitignore",
252
+ },
253
+ {
254
+ templateFile: "git_push.sh.mustache",
255
+ folder: "",
256
+ destinationFilename: "git_push.sh",
257
+ },
258
+ {
259
+ templateFile: "configuration.mustache",
260
+ folder: "",
261
+ destinationFilename: "configuration.go",
262
+ },
263
+ {
264
+ templateFile: "client.mustache",
265
+ folder: "",
266
+ destinationFilename: "client.go",
267
+ },
268
+ {
269
+ templateFile: "response.mustache",
270
+ folder: "",
271
+ destinationFilename: "response.go",
272
+ },
273
+ {
274
+ templateFile: "utils.mustache",
275
+ folder: "",
276
+ destinationFilename: "utils.go",
277
+ },
278
+ {
279
+ templateFile: "go.mod.mustache",
280
+ folder: "",
281
+ destinationFilename: "go.mod",
282
+ },
283
+ {
284
+ templateFile: "go.sum.mustache",
285
+ folder: "",
286
+ destinationFilename: "go.sum",
287
+ },
288
+ {
289
+ templateFile: ".travis.yml",
290
+ folder: "",
291
+ destinationFilename: ".travis.yml",
292
+ },
293
+ ],
294
+ reservedWords: GO_RESERVED_WORDS,
295
+ defaultTypeMappings: GO_TYPE_MAPPINGS,
296
+ defaultImportMappings: GO_IMPORT_MAPPINGS,
297
+ };
298
+ }
299
+ /**
300
+ * Get Go-specific additional properties
301
+ */
302
+ export function getGoAdditionalProperties(config) {
303
+ return {
304
+ packageName: config.packageName ?? "openapi",
305
+ packageVersion: config.additionalProperties?.packageVersion ?? "1.0.0",
306
+ hideGenerationTimestamp: config.additionalProperties?.hideGenerationTimestamp ?? true,
307
+ withGoMod: config.additionalProperties?.withGoMod ?? true,
308
+ withXml: config.additionalProperties?.withXml ?? false,
309
+ withAWSV4Signature: config.additionalProperties?.withAWSV4Signature ?? false,
310
+ enumClassPrefix: config.additionalProperties?.enumClassPrefix ?? false,
311
+ structPrefix: config.additionalProperties?.structPrefix ?? false,
312
+ generateInterfaces: config.additionalProperties?.generateInterfaces ?? false,
313
+ useOneOfDiscriminatorLookup: config.additionalProperties?.useOneOfDiscriminatorLookup ?? false,
314
+ generateMarshalJSON: config.additionalProperties?.generateMarshalJSON ?? true,
315
+ generateUnmarshalJSON: config.additionalProperties?.generateUnmarshalJSON ?? true,
316
+ useDefaultValuesForRequiredVars: config.additionalProperties?.useDefaultValuesForRequiredVars ?? false,
317
+ goImportAlias: config.additionalProperties?.goImportAlias ?? "openapiclient",
318
+ apiDocPath: "docs/",
319
+ modelDocPath: "docs/",
320
+ // Git repository metadata
321
+ gitHost: config.additionalProperties?.gitHost ?? "github.com",
322
+ gitUserId: config.additionalProperties?.gitUserId ?? "GIT_USER_ID",
323
+ gitRepoId: config.additionalProperties?.gitRepoId ?? "GIT_REPO_ID",
324
+ ...config.additionalProperties,
325
+ };
326
+ }
327
+ //# sourceMappingURL=go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../src/generators/go.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Generator registry
3
+ */
4
+ import type { CodegenConfig, GeneratorMetadata } from "../core/config.js";
5
+ export * from "./go.js";
6
+ export * from "./php.js";
7
+ export * from "./python.js";
8
+ export * from "./typescript-fetch.js";
9
+ /**
10
+ * Get a generator by name
11
+ */
12
+ export declare function getGenerator(name: string): GeneratorMetadata | undefined;
13
+ /**
14
+ * Get additional properties for a generator
15
+ */
16
+ export declare function getGeneratorAdditionalProperties(name: string, config: CodegenConfig): Record<string, unknown>;
17
+ /**
18
+ * List all available generators
19
+ */
20
+ export declare function listGenerators(): string[];
21
+ /**
22
+ * Register a custom generator
23
+ */
24
+ export declare function registerGenerator(name: string, factory: () => GeneratorMetadata): void;
25
+ /**
26
+ * Check if a generator exists
27
+ */
28
+ export declare function hasGenerator(name: string): boolean;
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAY1E,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AA+BtC;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAGxE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC/C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGzB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,iBAAiB,GAC9B,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD"}