@nestia/migrate 6.0.5 → 7.0.0-dev.20250605

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 (218) hide show
  1. package/README.md +92 -92
  2. package/lib/NestiaMigrateApplication.d.ts +23 -0
  3. package/lib/NestiaMigrateApplication.js +17522 -0
  4. package/lib/NestiaMigrateApplication.js.map +1 -0
  5. package/lib/analyzers/NestiaMigrateControllerAnalyzer.d.ts +5 -0
  6. package/lib/analyzers/{MigrateControllerAnalyzer.js → NestiaMigrateControllerAnalyzer.js} +10 -10
  7. package/lib/analyzers/NestiaMigrateControllerAnalyzer.js.map +1 -0
  8. package/lib/archivers/NestiaMigrateFileArchiver.d.ts +8 -0
  9. package/lib/archivers/NestiaMigrateFileArchiver.js +36 -0
  10. package/lib/archivers/NestiaMigrateFileArchiver.js.map +1 -0
  11. package/lib/bundles/NEST_TEMPLATE.d.ts +1 -5
  12. package/lib/bundles/NEST_TEMPLATE.js +50 -242
  13. package/lib/bundles/NEST_TEMPLATE.js.map +1 -1
  14. package/lib/bundles/SDK_TEMPLATE.d.ts +1 -5
  15. package/lib/bundles/SDK_TEMPLATE.js +23 -107
  16. package/lib/bundles/SDK_TEMPLATE.js.map +1 -1
  17. package/lib/{internal/MigrateCommander.d.ts → executable/NestiaMigrateCommander.d.ts} +1 -1
  18. package/lib/{internal/MigrateCommander.js → executable/NestiaMigrateCommander.js} +23 -21
  19. package/lib/executable/NestiaMigrateCommander.js.map +1 -0
  20. package/lib/{internal/MigrateInquirer.d.ts → executable/NestiaMigrateInquirer.d.ts} +2 -1
  21. package/lib/{internal/MigrateInquirer.js → executable/NestiaMigrateInquirer.js} +22 -9
  22. package/lib/executable/NestiaMigrateInquirer.js.map +1 -0
  23. package/lib/executable/migrate.js +2 -2
  24. package/lib/executable/migrate.js.map +1 -1
  25. package/lib/index.mjs +10042 -694
  26. package/lib/index.mjs.map +1 -1
  27. package/lib/module.d.ts +2 -5
  28. package/lib/module.js +2 -5
  29. package/lib/module.js.map +1 -1
  30. package/lib/programmers/NestiaMigrateApiFileProgrammer.d.ts +13 -0
  31. package/lib/programmers/NestiaMigrateApiFileProgrammer.js +40 -0
  32. package/lib/programmers/NestiaMigrateApiFileProgrammer.js.map +1 -0
  33. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.d.ts +14 -0
  34. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js +132 -0
  35. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js.map +1 -0
  36. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.d.ts +14 -0
  37. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.js +237 -0
  38. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.js.map +1 -0
  39. package/lib/programmers/NestiaMigrateApiProgrammer.d.ts +4 -0
  40. package/lib/programmers/{MigrateApiProgrammer.js → NestiaMigrateApiProgrammer.js} +31 -30
  41. package/lib/programmers/NestiaMigrateApiProgrammer.js.map +1 -0
  42. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.d.ts +14 -0
  43. package/lib/programmers/{MigrateApiSimulationProgrammer.js → NestiaMigrateApiSimulationProgrammer.js} +54 -36
  44. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.js.map +1 -0
  45. package/lib/programmers/NestiaMigrateApiStartProgrammer.d.ts +4 -0
  46. package/lib/programmers/{MigrateApiStartProgrammer.js → NestiaMigrateApiStartProgrammer.js} +23 -20
  47. package/lib/programmers/NestiaMigrateApiStartProgrammer.js.map +1 -0
  48. package/lib/programmers/NestiaMigrateDtoProgrammer.d.ts +15 -0
  49. package/lib/programmers/{MigrateDtoProgrammer.js → NestiaMigrateDtoProgrammer.js} +21 -12
  50. package/lib/programmers/NestiaMigrateDtoProgrammer.js.map +1 -0
  51. package/lib/programmers/NestiaMigrateE2eFileProgrammer.d.ts +14 -0
  52. package/lib/programmers/NestiaMigrateE2eFileProgrammer.js +81 -0
  53. package/lib/programmers/NestiaMigrateE2eFileProgrammer.js.map +1 -0
  54. package/lib/programmers/NestiaMigrateE2eProgrammer.d.ts +4 -0
  55. package/lib/programmers/NestiaMigrateE2eProgrammer.js +32 -0
  56. package/lib/programmers/NestiaMigrateE2eProgrammer.js.map +1 -0
  57. package/lib/programmers/{MigrateImportProgrammer.d.ts → NestiaMigrateImportProgrammer.d.ts} +1 -1
  58. package/lib/programmers/{MigrateImportProgrammer.js → NestiaMigrateImportProgrammer.js} +4 -4
  59. package/lib/programmers/NestiaMigrateImportProgrammer.js.map +1 -0
  60. package/lib/programmers/NestiaMigrateNestControllerProgrammer.d.ts +12 -0
  61. package/lib/programmers/{MigrateNestControllerProgrammer.js → NestiaMigrateNestControllerProgrammer.js} +20 -13
  62. package/lib/programmers/NestiaMigrateNestControllerProgrammer.js.map +1 -0
  63. package/lib/programmers/NestiaMigrateNestMethodProgrammer.d.ts +15 -0
  64. package/lib/programmers/{MigrateNestMethodProgrammer.js → NestiaMigrateNestMethodProgrammer.js} +85 -69
  65. package/lib/programmers/NestiaMigrateNestMethodProgrammer.js.map +1 -0
  66. package/lib/programmers/NestiaMigrateNestModuleProgrammer.d.ts +5 -0
  67. package/lib/programmers/{MigrateNestModuleProgrammer.js → NestiaMigrateNestModuleProgrammer.js} +6 -6
  68. package/lib/programmers/NestiaMigrateNestModuleProgrammer.js.map +1 -0
  69. package/lib/programmers/NestiaMigrateNestProgrammer.d.ts +4 -0
  70. package/lib/programmers/NestiaMigrateNestProgrammer.js +65 -0
  71. package/lib/programmers/NestiaMigrateNestProgrammer.js.map +1 -0
  72. package/lib/programmers/NestiaMigrateSchemaProgrammer.d.ts +10 -0
  73. package/lib/programmers/NestiaMigrateSchemaProgrammer.js +414 -0
  74. package/lib/programmers/NestiaMigrateSchemaProgrammer.js.map +1 -0
  75. package/lib/structures/INestiaMigrateConfig.d.ts +10 -0
  76. package/lib/structures/{IHttpMigrateFile.js → INestiaMigrateConfig.js} +1 -1
  77. package/lib/structures/INestiaMigrateConfig.js.map +1 -0
  78. package/lib/structures/INestiaMigrateContext.d.ts +9 -0
  79. package/lib/structures/INestiaMigrateContext.js +3 -0
  80. package/lib/structures/INestiaMigrateContext.js.map +1 -0
  81. package/lib/structures/INestiaMigrateController.d.ts +7 -0
  82. package/lib/structures/{IHttpMigrateController.js → INestiaMigrateController.js} +1 -1
  83. package/lib/structures/INestiaMigrateController.js.map +1 -0
  84. package/lib/structures/{IHttpMigrateDto.d.ts → INestiaMigrateDto.d.ts} +2 -2
  85. package/lib/structures/{IHttpMigrateRoute.js → INestiaMigrateDto.js} +1 -1
  86. package/lib/structures/INestiaMigrateDto.js.map +1 -0
  87. package/lib/structures/{IHttpMigrateFile.d.ts → INestiaMigrateFile.d.ts} +1 -1
  88. package/lib/structures/{IHttpMigrateDto.js → INestiaMigrateFile.js} +1 -1
  89. package/lib/structures/INestiaMigrateFile.js.map +1 -0
  90. package/lib/structures/INestiaMigrateProgram.d.ts +9 -0
  91. package/lib/structures/INestiaMigrateProgram.js +3 -0
  92. package/lib/structures/INestiaMigrateProgram.js.map +1 -0
  93. package/lib/structures/INestiaMigrateSchema.d.ts +4 -0
  94. package/lib/structures/{IHttpMigrateProgram.js → INestiaMigrateSchema.js} +1 -1
  95. package/lib/structures/INestiaMigrateSchema.js.map +1 -0
  96. package/lib/utils/openapi-down-convert/converter.js +2 -2
  97. package/package.json +8 -8
  98. package/src/NestiaMigrateApplication.ts +144 -0
  99. package/src/analyzers/{MigrateControllerAnalyzer.ts → NestiaMigrateControllerAnalyzer.ts} +51 -51
  100. package/src/archivers/NestiaMigrateFileArchiver.ts +28 -0
  101. package/src/bundles/NEST_TEMPLATE.ts +50 -242
  102. package/src/bundles/SDK_TEMPLATE.ts +23 -107
  103. package/src/{internal/MigrateCommander.ts → executable/NestiaMigrateCommander.ts} +98 -94
  104. package/src/{internal/MigrateInquirer.ts → executable/NestiaMigrateInquirer.ts} +106 -89
  105. package/src/executable/bundle.js +129 -127
  106. package/src/executable/migrate.ts +7 -7
  107. package/src/factories/TypeLiteralFactory.ts +57 -57
  108. package/src/index.ts +4 -4
  109. package/src/module.ts +2 -8
  110. package/src/programmers/NestiaMigrateApiFileProgrammer.ts +55 -0
  111. package/src/programmers/NestiaMigrateApiFunctionProgrammer.ts +256 -0
  112. package/src/programmers/NestiaMigrateApiNamespaceProgrammer.ts +524 -0
  113. package/src/programmers/NestiaMigrateApiProgrammer.ts +107 -0
  114. package/src/programmers/NestiaMigrateApiSimulationProgrammer.ts +340 -0
  115. package/src/programmers/NestiaMigrateApiStartProgrammer.ts +198 -0
  116. package/src/programmers/NestiaMigrateDtoProgrammer.ts +101 -0
  117. package/src/programmers/NestiaMigrateE2eFileProgrammer.ts +153 -0
  118. package/src/programmers/NestiaMigrateE2eProgrammer.ts +46 -0
  119. package/src/programmers/{MigrateImportProgrammer.ts → NestiaMigrateImportProgrammer.ts} +118 -118
  120. package/src/programmers/NestiaMigrateNestControllerProgrammer.ts +66 -0
  121. package/src/programmers/NestiaMigrateNestMethodProgrammer.ts +406 -0
  122. package/src/programmers/{MigrateNestModuleProgrammer.ts → NestiaMigrateNestModuleProgrammer.ts} +65 -65
  123. package/src/programmers/NestiaMigrateNestProgrammer.ts +88 -0
  124. package/src/programmers/NestiaMigrateSchemaProgrammer.ts +475 -0
  125. package/src/structures/INestiaMigrateConfig.ts +10 -0
  126. package/src/structures/INestiaMigrateContext.ts +15 -0
  127. package/src/structures/INestiaMigrateController.ts +8 -0
  128. package/src/structures/{IHttpMigrateDto.ts → INestiaMigrateDto.ts} +8 -8
  129. package/src/structures/{IHttpMigrateFile.ts → INestiaMigrateFile.ts} +5 -5
  130. package/src/structures/INestiaMigrateProgram.ts +11 -0
  131. package/src/structures/INestiaMigrateSchema.ts +4 -0
  132. package/src/utils/FilePrinter.ts +38 -38
  133. package/src/utils/MapUtil.ts +13 -13
  134. package/src/utils/OpenApiTypeChecker.ts +73 -73
  135. package/src/utils/SetupWizard.ts +12 -12
  136. package/src/utils/StringUtil.ts +113 -113
  137. package/src/utils/openapi-down-convert/RefVisitor.ts +139 -139
  138. package/src/utils/openapi-down-convert/converter.ts +527 -527
  139. package/lib/MigrateApplication.d.ts +0 -28
  140. package/lib/MigrateApplication.js +0 -7994
  141. package/lib/MigrateApplication.js.map +0 -1
  142. package/lib/analyzers/MigrateApplicationAnalyzer.d.ts +0 -4
  143. package/lib/analyzers/MigrateApplicationAnalyzer.js +0 -12
  144. package/lib/analyzers/MigrateApplicationAnalyzer.js.map +0 -1
  145. package/lib/analyzers/MigrateControllerAnalyzer.d.ts +0 -7
  146. package/lib/analyzers/MigrateControllerAnalyzer.js.map +0 -1
  147. package/lib/archivers/MigrateFileArchiver.d.ts +0 -8
  148. package/lib/archivers/MigrateFileArchiver.js +0 -35
  149. package/lib/archivers/MigrateFileArchiver.js.map +0 -1
  150. package/lib/internal/MigrateCommander.js.map +0 -1
  151. package/lib/internal/MigrateInquirer.js.map +0 -1
  152. package/lib/programmers/MigrateApiFileProgrammer.d.ts +0 -11
  153. package/lib/programmers/MigrateApiFileProgrammer.js +0 -30
  154. package/lib/programmers/MigrateApiFileProgrammer.js.map +0 -1
  155. package/lib/programmers/MigrateApiFunctionProgrammer.d.ts +0 -9
  156. package/lib/programmers/MigrateApiFunctionProgrammer.js +0 -102
  157. package/lib/programmers/MigrateApiFunctionProgrammer.js.map +0 -1
  158. package/lib/programmers/MigrateApiNamespaceProgrammer.d.ts +0 -9
  159. package/lib/programmers/MigrateApiNamespaceProgrammer.js +0 -142
  160. package/lib/programmers/MigrateApiNamespaceProgrammer.js.map +0 -1
  161. package/lib/programmers/MigrateApiProgrammer.d.ts +0 -5
  162. package/lib/programmers/MigrateApiProgrammer.js.map +0 -1
  163. package/lib/programmers/MigrateApiSimulationProgrammer.d.ts +0 -8
  164. package/lib/programmers/MigrateApiSimulationProgrammer.js.map +0 -1
  165. package/lib/programmers/MigrateApiStartProgrammer.d.ts +0 -5
  166. package/lib/programmers/MigrateApiStartProgrammer.js.map +0 -1
  167. package/lib/programmers/MigrateDtoProgrammer.d.ts +0 -11
  168. package/lib/programmers/MigrateDtoProgrammer.js.map +0 -1
  169. package/lib/programmers/MigrateE2eFileProgrammer.d.ts +0 -8
  170. package/lib/programmers/MigrateE2eFileProgrammer.js +0 -45
  171. package/lib/programmers/MigrateE2eFileProgrammer.js.map +0 -1
  172. package/lib/programmers/MigrateE2eProgrammer.d.ts +0 -5
  173. package/lib/programmers/MigrateE2eProgrammer.js +0 -25
  174. package/lib/programmers/MigrateE2eProgrammer.js.map +0 -1
  175. package/lib/programmers/MigrateImportProgrammer.js.map +0 -1
  176. package/lib/programmers/MigrateNestControllerProgrammer.d.ts +0 -7
  177. package/lib/programmers/MigrateNestControllerProgrammer.js.map +0 -1
  178. package/lib/programmers/MigrateNestMethodProgrammer.d.ts +0 -9
  179. package/lib/programmers/MigrateNestMethodProgrammer.js.map +0 -1
  180. package/lib/programmers/MigrateNestModuleProgrammer.d.ts +0 -5
  181. package/lib/programmers/MigrateNestModuleProgrammer.js.map +0 -1
  182. package/lib/programmers/MigrateNestProgrammer.d.ts +0 -5
  183. package/lib/programmers/MigrateNestProgrammer.js +0 -69
  184. package/lib/programmers/MigrateNestProgrammer.js.map +0 -1
  185. package/lib/programmers/MigrateSchemaProgrammer.d.ts +0 -6
  186. package/lib/programmers/MigrateSchemaProgrammer.js +0 -335
  187. package/lib/programmers/MigrateSchemaProgrammer.js.map +0 -1
  188. package/lib/structures/IHttpMigrateController.d.ts +0 -7
  189. package/lib/structures/IHttpMigrateController.js.map +0 -1
  190. package/lib/structures/IHttpMigrateDto.js.map +0 -1
  191. package/lib/structures/IHttpMigrateFile.js.map +0 -1
  192. package/lib/structures/IHttpMigrateProgram.d.ts +0 -33
  193. package/lib/structures/IHttpMigrateProgram.js.map +0 -1
  194. package/lib/structures/IHttpMigrateRoute.d.ts +0 -1
  195. package/lib/structures/IHttpMigrateRoute.js.map +0 -1
  196. package/lib/structures/IHttpMigrateSchema.d.ts +0 -4
  197. package/lib/structures/IHttpMigrateSchema.js +0 -3
  198. package/lib/structures/IHttpMigrateSchema.js.map +0 -1
  199. package/src/MigrateApplication.ts +0 -124
  200. package/src/analyzers/MigrateApplicationAnalyzer.ts +0 -18
  201. package/src/archivers/MigrateFileArchiver.ts +0 -38
  202. package/src/programmers/MigrateApiFileProgrammer.ts +0 -51
  203. package/src/programmers/MigrateApiFunctionProgrammer.ts +0 -213
  204. package/src/programmers/MigrateApiNamespaceProgrammer.ts +0 -418
  205. package/src/programmers/MigrateApiProgrammer.ts +0 -104
  206. package/src/programmers/MigrateApiSimulationProgrammer.ts +0 -324
  207. package/src/programmers/MigrateApiStartProgrammer.ts +0 -194
  208. package/src/programmers/MigrateDtoProgrammer.ts +0 -87
  209. package/src/programmers/MigrateE2eFileProgrammer.ts +0 -117
  210. package/src/programmers/MigrateE2eProgrammer.ts +0 -34
  211. package/src/programmers/MigrateNestControllerProgrammer.ts +0 -57
  212. package/src/programmers/MigrateNestMethodProgrammer.ts +0 -397
  213. package/src/programmers/MigrateNestProgrammer.ts +0 -82
  214. package/src/programmers/MigrateSchemaProgrammer.ts +0 -378
  215. package/src/structures/IHttpMigrateController.ts +0 -8
  216. package/src/structures/IHttpMigrateProgram.ts +0 -35
  217. package/src/structures/IHttpMigrateRoute.ts +0 -1
  218. package/src/structures/IHttpMigrateSchema.ts +0 -4
@@ -1,73 +1,73 @@
1
- import { OpenApi } from "@samchon/openapi";
2
-
3
- export namespace OpenApiTypeChecker {
4
- export const isOneOf = (
5
- schema: OpenApi.IJsonSchema,
6
- ): schema is OpenApi.IJsonSchema.IOneOf =>
7
- (schema as any).oneOf !== undefined;
8
-
9
- export const isNull = (
10
- schema: OpenApi.IJsonSchema,
11
- ): schema is OpenApi.IJsonSchema.INull =>
12
- (schema as OpenApi.IJsonSchema.INull).type === "null";
13
-
14
- export const isConstant = (
15
- schema: OpenApi.IJsonSchema,
16
- ): schema is OpenApi.IJsonSchema.IConstant =>
17
- (schema as OpenApi.IJsonSchema.IConstant).const !== undefined;
18
-
19
- export const isBoolean = (
20
- schema: OpenApi.IJsonSchema,
21
- ): schema is OpenApi.IJsonSchema.IBoolean =>
22
- (schema as OpenApi.IJsonSchema.IBoolean).type === "boolean";
23
-
24
- export const isInteger = (
25
- schema: OpenApi.IJsonSchema,
26
- ): schema is OpenApi.IJsonSchema.IInteger =>
27
- (schema as OpenApi.IJsonSchema.IInteger).type === "integer";
28
-
29
- export const isNumber = (
30
- schema: OpenApi.IJsonSchema,
31
- ): schema is OpenApi.IJsonSchema.INumber =>
32
- (schema as OpenApi.IJsonSchema.INumber).type === "number";
33
-
34
- export const isString = (
35
- schema: OpenApi.IJsonSchema,
36
- ): schema is OpenApi.IJsonSchema.IString =>
37
- (schema as OpenApi.IJsonSchema.IString).type === "string";
38
-
39
- export const isArray = (
40
- schema: OpenApi.IJsonSchema,
41
- ): schema is OpenApi.IJsonSchema.IArray =>
42
- (schema as OpenApi.IJsonSchema.IArray).type === "array" &&
43
- (schema as OpenApi.IJsonSchema.IArray).items !== undefined;
44
-
45
- export const isTuple = (
46
- schema: OpenApi.IJsonSchema,
47
- ): schema is OpenApi.IJsonSchema.ITuple =>
48
- (schema as OpenApi.IJsonSchema.ITuple).type === "array" &&
49
- (schema as OpenApi.IJsonSchema.ITuple).prefixItems !== undefined;
50
-
51
- export const isObject = (
52
- schema: OpenApi.IJsonSchema,
53
- ): schema is OpenApi.IJsonSchema.IObject =>
54
- (schema as OpenApi.IJsonSchema.IObject).type === "object";
55
-
56
- export const isReference = (
57
- schema: OpenApi.IJsonSchema,
58
- ): schema is OpenApi.IJsonSchema.IReference =>
59
- (schema as OpenApi.IJsonSchema.IReference).$ref !== undefined;
60
-
61
- export const isUnknown = (
62
- schema: OpenApi.IJsonSchema,
63
- ): schema is OpenApi.IJsonSchema.IUnknown =>
64
- (schema as OpenApi.IJsonSchema.__ISignificant<any>).type === undefined &&
65
- !isOneOf(schema) &&
66
- !isReference(schema) &&
67
- !isConstant(schema);
68
-
69
- // export const isNullable = (schema: OpenApi.IJsonSchema): boolean =>
70
- // SwaggerTypeChecker.isOneOf(schema)
71
- // ? schema.oneOf.some(isNullable)
72
- // : (schema as OpenApi.IJsonSchema.INullOnly).type === "null";
73
- }
1
+ import { OpenApi } from "@samchon/openapi";
2
+
3
+ export namespace OpenApiTypeChecker {
4
+ export const isOneOf = (
5
+ schema: OpenApi.IJsonSchema,
6
+ ): schema is OpenApi.IJsonSchema.IOneOf =>
7
+ (schema as any).oneOf !== undefined;
8
+
9
+ export const isNull = (
10
+ schema: OpenApi.IJsonSchema,
11
+ ): schema is OpenApi.IJsonSchema.INull =>
12
+ (schema as OpenApi.IJsonSchema.INull).type === "null";
13
+
14
+ export const isConstant = (
15
+ schema: OpenApi.IJsonSchema,
16
+ ): schema is OpenApi.IJsonSchema.IConstant =>
17
+ (schema as OpenApi.IJsonSchema.IConstant).const !== undefined;
18
+
19
+ export const isBoolean = (
20
+ schema: OpenApi.IJsonSchema,
21
+ ): schema is OpenApi.IJsonSchema.IBoolean =>
22
+ (schema as OpenApi.IJsonSchema.IBoolean).type === "boolean";
23
+
24
+ export const isInteger = (
25
+ schema: OpenApi.IJsonSchema,
26
+ ): schema is OpenApi.IJsonSchema.IInteger =>
27
+ (schema as OpenApi.IJsonSchema.IInteger).type === "integer";
28
+
29
+ export const isNumber = (
30
+ schema: OpenApi.IJsonSchema,
31
+ ): schema is OpenApi.IJsonSchema.INumber =>
32
+ (schema as OpenApi.IJsonSchema.INumber).type === "number";
33
+
34
+ export const isString = (
35
+ schema: OpenApi.IJsonSchema,
36
+ ): schema is OpenApi.IJsonSchema.IString =>
37
+ (schema as OpenApi.IJsonSchema.IString).type === "string";
38
+
39
+ export const isArray = (
40
+ schema: OpenApi.IJsonSchema,
41
+ ): schema is OpenApi.IJsonSchema.IArray =>
42
+ (schema as OpenApi.IJsonSchema.IArray).type === "array" &&
43
+ (schema as OpenApi.IJsonSchema.IArray).items !== undefined;
44
+
45
+ export const isTuple = (
46
+ schema: OpenApi.IJsonSchema,
47
+ ): schema is OpenApi.IJsonSchema.ITuple =>
48
+ (schema as OpenApi.IJsonSchema.ITuple).type === "array" &&
49
+ (schema as OpenApi.IJsonSchema.ITuple).prefixItems !== undefined;
50
+
51
+ export const isObject = (
52
+ schema: OpenApi.IJsonSchema,
53
+ ): schema is OpenApi.IJsonSchema.IObject =>
54
+ (schema as OpenApi.IJsonSchema.IObject).type === "object";
55
+
56
+ export const isReference = (
57
+ schema: OpenApi.IJsonSchema,
58
+ ): schema is OpenApi.IJsonSchema.IReference =>
59
+ (schema as OpenApi.IJsonSchema.IReference).$ref !== undefined;
60
+
61
+ export const isUnknown = (
62
+ schema: OpenApi.IJsonSchema,
63
+ ): schema is OpenApi.IJsonSchema.IUnknown =>
64
+ (schema as OpenApi.IJsonSchema.__ISignificant<any>).type === undefined &&
65
+ !isOneOf(schema) &&
66
+ !isReference(schema) &&
67
+ !isConstant(schema);
68
+
69
+ // export const isNullable = (schema: OpenApi.IJsonSchema): boolean =>
70
+ // SwaggerTypeChecker.isOneOf(schema)
71
+ // ? schema.oneOf.some(isNullable)
72
+ // : (schema as OpenApi.IJsonSchema.INullOnly).type === "null";
73
+ }
@@ -1,12 +1,12 @@
1
- import cp from "child_process";
2
-
3
- export namespace SetupWizard {
4
- export const setup = (output: string) => {
5
- execute(output)("npm install");
6
- };
7
-
8
- const execute = (cwd: string) => (command: string, fake?: string) => {
9
- console.log(fake ?? command);
10
- cp.execSync(command, { cwd, stdio: "inherit" });
11
- };
12
- }
1
+ import cp from "child_process";
2
+
3
+ export namespace SetupWizard {
4
+ export const setup = (output: string) => {
5
+ execute(output)("npm install");
6
+ };
7
+
8
+ const execute = (cwd: string) => (command: string, fake?: string) => {
9
+ console.log(fake ?? command);
10
+ cp.execSync(command, { cwd, stdio: "inherit" });
11
+ };
12
+ }
@@ -1,113 +1,113 @@
1
- export namespace StringUtil {
2
- export const capitalize = (str: string) =>
3
- str[0].toUpperCase() + str.slice(1).toLowerCase();
4
-
5
- export const splitWithNormalization = (path: string) =>
6
- path
7
- .split("/")
8
- .map((str) => normalize(str.trim()))
9
- .filter((str) => !!str.length);
10
-
11
- export const escapeDuplicate =
12
- (keep: string[]) =>
13
- (change: string): string =>
14
- keep.includes(change) ? escapeDuplicate(keep)(`_${change}`) : change;
15
-
16
- export const escapeNonVariable = (str: string): string => {
17
- str = escape(str);
18
- for (const [before, after] of VARIABLE_REPLACERS)
19
- str = str.split(before).join(after);
20
- for (let i: number = 0; i <= 9; ++i)
21
- if (str[0] === i.toString()) {
22
- str = "_" + str;
23
- break;
24
- }
25
- if (str === "") return "_empty_";
26
- return str;
27
- };
28
- }
29
-
30
- const escape = (str: string): string => {
31
- str = str.trim();
32
- if (RESERVED.has(str)) return `_${str}`;
33
- else if (str.length !== 0 && "0" <= str[0] && str[0] <= "9") str = `_${str}`;
34
- return str;
35
- };
36
-
37
- const normalize = (str: string): string =>
38
- escape(str.split(".").join("_").split("-").join("_"));
39
-
40
- const RESERVED: Set<string> = new Set([
41
- "break",
42
- "case",
43
- "catch",
44
- "class",
45
- "const",
46
- "continue",
47
- "debugger",
48
- "default",
49
- "delete",
50
- "do",
51
- "else",
52
- "enum",
53
- "export",
54
- "extends",
55
- "false",
56
- "finally",
57
- "for",
58
- "function",
59
- "if",
60
- "import",
61
- "in",
62
- "instanceof",
63
- "module",
64
- "new",
65
- "null",
66
- "package",
67
- "public",
68
- "private",
69
- "protected",
70
- "return",
71
- "super",
72
- "switch",
73
- "this",
74
- "throw",
75
- "true",
76
- "try",
77
- "typeof",
78
- "var",
79
- "void",
80
- "while",
81
- "with",
82
- ]);
83
-
84
- const VARIABLE_REPLACERS: [string, string][] = [
85
- ["`", "_backquote_"],
86
- ["!", "_exclamation_"],
87
- ["@", "_at_"],
88
- ["#", "_hash_"],
89
- ["$", "_dollar_"],
90
- ["%", "_percent_"],
91
- ["^", "_caret_"],
92
- ["&", "_and_"],
93
- ["*", "_star_"],
94
- ["(", "_lparen_"],
95
- [")", "_rparen_"],
96
- ["-", "_"],
97
- ["+", "_plus_"],
98
- ["|", "_or_"],
99
- ["{", "_blt_"],
100
- ["}", "_bgt_"],
101
- ["<", "_lt_"],
102
- [">", "_gt_"],
103
- ["[", "_alt_"],
104
- ["]", "_agt_"],
105
- [",", "_comma_"],
106
- ["'", "_singlequote_"],
107
- ['"', "_doublequote_"],
108
- [" ", "_space_"],
109
- ["?", "_question_"],
110
- [":", "_colon_"],
111
- [";", "_semicolon_"],
112
- ["...", "_rest_"],
113
- ];
1
+ export namespace StringUtil {
2
+ export const capitalize = (str: string) =>
3
+ str[0].toUpperCase() + str.slice(1).toLowerCase();
4
+
5
+ export const splitWithNormalization = (path: string) =>
6
+ path
7
+ .split("/")
8
+ .map((str) => normalize(str.trim()))
9
+ .filter((str) => !!str.length);
10
+
11
+ export const escapeDuplicate =
12
+ (keep: string[]) =>
13
+ (change: string): string =>
14
+ keep.includes(change) ? escapeDuplicate(keep)(`_${change}`) : change;
15
+
16
+ export const escapeNonVariable = (str: string): string => {
17
+ str = escape(str);
18
+ for (const [before, after] of VARIABLE_REPLACERS)
19
+ str = str.split(before).join(after);
20
+ for (let i: number = 0; i <= 9; ++i)
21
+ if (str[0] === i.toString()) {
22
+ str = "_" + str;
23
+ break;
24
+ }
25
+ if (str === "") return "_empty_";
26
+ return str;
27
+ };
28
+ }
29
+
30
+ const escape = (str: string): string => {
31
+ str = str.trim();
32
+ if (RESERVED.has(str)) return `_${str}`;
33
+ else if (str.length !== 0 && "0" <= str[0] && str[0] <= "9") str = `_${str}`;
34
+ return str;
35
+ };
36
+
37
+ const normalize = (str: string): string =>
38
+ escape(str.split(".").join("_").split("-").join("_"));
39
+
40
+ const RESERVED: Set<string> = new Set([
41
+ "break",
42
+ "case",
43
+ "catch",
44
+ "class",
45
+ "const",
46
+ "continue",
47
+ "debugger",
48
+ "default",
49
+ "delete",
50
+ "do",
51
+ "else",
52
+ "enum",
53
+ "export",
54
+ "extends",
55
+ "false",
56
+ "finally",
57
+ "for",
58
+ "function",
59
+ "if",
60
+ "import",
61
+ "in",
62
+ "instanceof",
63
+ "module",
64
+ "new",
65
+ "null",
66
+ "package",
67
+ "public",
68
+ "private",
69
+ "protected",
70
+ "return",
71
+ "super",
72
+ "switch",
73
+ "this",
74
+ "throw",
75
+ "true",
76
+ "try",
77
+ "typeof",
78
+ "var",
79
+ "void",
80
+ "while",
81
+ "with",
82
+ ]);
83
+
84
+ const VARIABLE_REPLACERS: [string, string][] = [
85
+ ["`", "_backquote_"],
86
+ ["!", "_exclamation_"],
87
+ ["@", "_at_"],
88
+ ["#", "_hash_"],
89
+ ["$", "_dollar_"],
90
+ ["%", "_percent_"],
91
+ ["^", "_caret_"],
92
+ ["&", "_and_"],
93
+ ["*", "_star_"],
94
+ ["(", "_lparen_"],
95
+ [")", "_rparen_"],
96
+ ["-", "_"],
97
+ ["+", "_plus_"],
98
+ ["|", "_or_"],
99
+ ["{", "_blt_"],
100
+ ["}", "_bgt_"],
101
+ ["<", "_lt_"],
102
+ [">", "_gt_"],
103
+ ["[", "_alt_"],
104
+ ["]", "_agt_"],
105
+ [",", "_comma_"],
106
+ ["'", "_singlequote_"],
107
+ ['"', "_doublequote_"],
108
+ [" ", "_space_"],
109
+ ["?", "_question_"],
110
+ [":", "_colon_"],
111
+ [";", "_semicolon_"],
112
+ ["...", "_rest_"],
113
+ ];
@@ -1,139 +1,139 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- /**
4
- * Recursively walk a JSON object and invoke a callback function
5
- * on each `{ "$ref" : "path" }` object found
6
- */
7
-
8
- /**
9
- * Represents a JSON Reference object, such as
10
- * `{"$ref": "#/components/schemas/problemResponse" }`
11
- */
12
- export interface RefObject {
13
- $ref: string;
14
- }
15
-
16
- /**
17
- * JsonNode represents a node within the OpenAPI object
18
- */
19
- export type JsonNode = object | [] | string | boolean | null | number;
20
-
21
- /** A JSON Schema object in an API def */
22
- export type SchemaObject = object;
23
-
24
- /**
25
- * Function signature for the visitRefObjects callback
26
- */
27
- export type RefVisitor = (node: RefObject) => JsonNode;
28
- /**
29
- * Function signature for the visitSchemaObjects callback
30
- */
31
- export type SchemaVisitor = (node: SchemaObject) => SchemaObject;
32
-
33
- /**
34
- /**
35
- * Function signature for the walkObject callback
36
- */
37
- export type ObjectVisitor = (node: object) => JsonNode;
38
-
39
- /**
40
- * Test if a JSON node is a `{ $ref: "uri" }` object
41
- */
42
- export function isRef(node: any): boolean {
43
- return (
44
- node !== null &&
45
- typeof node === "object" &&
46
- node.hasOwnProperty("$ref") &&
47
- typeof node["$ref"] === "string"
48
- );
49
- }
50
-
51
- /**
52
- * Walk a JSON object and apply `schemaCallback` when a JSON schema is found.
53
- * JSON Schema objects are items in components/schemas or in an item named `schema`
54
- * @param node a node in the OpenAPI document
55
- * @param schemaCallback the function to call on JSON schema objects
56
- * @return the modified (annotated) node
57
- */
58
- export function visitSchemaObjects(
59
- node: any,
60
- schemaCallback: SchemaVisitor,
61
- ): any {
62
- const objectVisitor = (node: any): JsonNode => {
63
- if (node.hasOwnProperty("schema")) {
64
- const schema = node["schema"];
65
- if (schema != null && typeof schema === "object") {
66
- node["schema"] = schemaCallback(schema);
67
- }
68
- } else if (node.hasOwnProperty("schemas")) {
69
- const schemas = node["schemas"];
70
- if (schemas != null && typeof schemas === "object") {
71
- for (const schemaName in schemas) {
72
- const schema = schemas[schemaName];
73
- const newSchema = schemaCallback(schema);
74
- schemas[schemaName] = newSchema;
75
- }
76
- }
77
- }
78
- return node;
79
- };
80
- return walkObject(node, objectVisitor);
81
- }
82
-
83
- /**
84
- * Walk a JSON object and apply `refCallback` when a JSON `{$ref: url }` is found
85
- * @param node a node in the OpenAPI document
86
- * @param refCallback the function to call on JSON `$ref` objects
87
- * @return the modified (annotated) node
88
- */
89
- export function visitRefObjects(node: any, refCallback: RefVisitor): any {
90
- const objectVisitor = (node: object): JsonNode => {
91
- if (isRef(node)) {
92
- return refCallback(node as RefObject);
93
- }
94
- return node;
95
- };
96
- return walkObject(node, objectVisitor);
97
- }
98
-
99
- /**
100
- * Walk a JSON object or array and apply objectCallback when a JSON object is found
101
- * @param node a node in the OpenAPI document
102
- * @param objectCallback the function to call on JSON objects
103
- * @param nav tracks where we are in the original document
104
- * @return the modified (annotated) node
105
- */
106
- export function walkObject(
107
- node: object,
108
- objectCallback: ObjectVisitor,
109
- ): JsonNode {
110
- return walkObj(node);
111
-
112
- function walkObj(node: any): JsonNode {
113
- const object = objectCallback(node);
114
- if (object !== null && typeof object === "object") {
115
- const keys = [...Object.keys(node)]; // make copy since this code may re-enter objects
116
- for (const key of keys) {
117
- const val = node[key];
118
- if (Array.isArray(val)) {
119
- node[key] = walkArray(val as []);
120
- } else if (val !== null && typeof val === "object") {
121
- node[key] = walkObj(val);
122
- }
123
- }
124
- }
125
- return object;
126
- }
127
-
128
- function walkArray(array: JsonNode[]): JsonNode[] {
129
- for (let index = 0; index < array.length; index += 1) {
130
- const val = array[index] as JsonNode;
131
- if (val !== null && typeof val === "object") {
132
- array[index] = walkObj(val) as object;
133
- } else if (Array.isArray(val)) {
134
- array[index] = walkArray(val as JsonNode[]) as [];
135
- }
136
- }
137
- return array;
138
- }
139
- }
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
3
+ /**
4
+ * Recursively walk a JSON object and invoke a callback function
5
+ * on each `{ "$ref" : "path" }` object found
6
+ */
7
+
8
+ /**
9
+ * Represents a JSON Reference object, such as
10
+ * `{"$ref": "#/components/schemas/problemResponse" }`
11
+ */
12
+ export interface RefObject {
13
+ $ref: string;
14
+ }
15
+
16
+ /**
17
+ * JsonNode represents a node within the OpenAPI object
18
+ */
19
+ export type JsonNode = object | [] | string | boolean | null | number;
20
+
21
+ /** A JSON Schema object in an API def */
22
+ export type SchemaObject = object;
23
+
24
+ /**
25
+ * Function signature for the visitRefObjects callback
26
+ */
27
+ export type RefVisitor = (node: RefObject) => JsonNode;
28
+ /**
29
+ * Function signature for the visitSchemaObjects callback
30
+ */
31
+ export type SchemaVisitor = (node: SchemaObject) => SchemaObject;
32
+
33
+ /**
34
+ /**
35
+ * Function signature for the walkObject callback
36
+ */
37
+ export type ObjectVisitor = (node: object) => JsonNode;
38
+
39
+ /**
40
+ * Test if a JSON node is a `{ $ref: "uri" }` object
41
+ */
42
+ export function isRef(node: any): boolean {
43
+ return (
44
+ node !== null &&
45
+ typeof node === "object" &&
46
+ node.hasOwnProperty("$ref") &&
47
+ typeof node["$ref"] === "string"
48
+ );
49
+ }
50
+
51
+ /**
52
+ * Walk a JSON object and apply `schemaCallback` when a JSON schema is found.
53
+ * JSON Schema objects are items in components/schemas or in an item named `schema`
54
+ * @param node a node in the OpenAPI document
55
+ * @param schemaCallback the function to call on JSON schema objects
56
+ * @return the modified (annotated) node
57
+ */
58
+ export function visitSchemaObjects(
59
+ node: any,
60
+ schemaCallback: SchemaVisitor,
61
+ ): any {
62
+ const objectVisitor = (node: any): JsonNode => {
63
+ if (node.hasOwnProperty("schema")) {
64
+ const schema = node["schema"];
65
+ if (schema != null && typeof schema === "object") {
66
+ node["schema"] = schemaCallback(schema);
67
+ }
68
+ } else if (node.hasOwnProperty("schemas")) {
69
+ const schemas = node["schemas"];
70
+ if (schemas != null && typeof schemas === "object") {
71
+ for (const schemaName in schemas) {
72
+ const schema = schemas[schemaName];
73
+ const newSchema = schemaCallback(schema);
74
+ schemas[schemaName] = newSchema;
75
+ }
76
+ }
77
+ }
78
+ return node;
79
+ };
80
+ return walkObject(node, objectVisitor);
81
+ }
82
+
83
+ /**
84
+ * Walk a JSON object and apply `refCallback` when a JSON `{$ref: url }` is found
85
+ * @param node a node in the OpenAPI document
86
+ * @param refCallback the function to call on JSON `$ref` objects
87
+ * @return the modified (annotated) node
88
+ */
89
+ export function visitRefObjects(node: any, refCallback: RefVisitor): any {
90
+ const objectVisitor = (node: object): JsonNode => {
91
+ if (isRef(node)) {
92
+ return refCallback(node as RefObject);
93
+ }
94
+ return node;
95
+ };
96
+ return walkObject(node, objectVisitor);
97
+ }
98
+
99
+ /**
100
+ * Walk a JSON object or array and apply objectCallback when a JSON object is found
101
+ * @param node a node in the OpenAPI document
102
+ * @param objectCallback the function to call on JSON objects
103
+ * @param nav tracks where we are in the original document
104
+ * @return the modified (annotated) node
105
+ */
106
+ export function walkObject(
107
+ node: object,
108
+ objectCallback: ObjectVisitor,
109
+ ): JsonNode {
110
+ return walkObj(node);
111
+
112
+ function walkObj(node: any): JsonNode {
113
+ const object = objectCallback(node);
114
+ if (object !== null && typeof object === "object") {
115
+ const keys = [...Object.keys(node)]; // make copy since this code may re-enter objects
116
+ for (const key of keys) {
117
+ const val = node[key];
118
+ if (Array.isArray(val)) {
119
+ node[key] = walkArray(val as []);
120
+ } else if (val !== null && typeof val === "object") {
121
+ node[key] = walkObj(val);
122
+ }
123
+ }
124
+ }
125
+ return object;
126
+ }
127
+
128
+ function walkArray(array: JsonNode[]): JsonNode[] {
129
+ for (let index = 0; index < array.length; index += 1) {
130
+ const val = array[index] as JsonNode;
131
+ if (val !== null && typeof val === "object") {
132
+ array[index] = walkObj(val) as object;
133
+ } else if (Array.isArray(val)) {
134
+ array[index] = walkArray(val as JsonNode[]) as [];
135
+ }
136
+ }
137
+ return array;
138
+ }
139
+ }