@nestia/migrate 0.6.1 → 0.6.2

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 (68) hide show
  1. package/lib/MigrateApplication.d.ts +1 -1
  2. package/lib/MigrateApplication.js +46 -27
  3. package/lib/MigrateApplication.js.map +1 -1
  4. package/lib/analyzers/ControllerAnalyzer.js +11 -2
  5. package/lib/analyzers/ControllerAnalyzer.js.map +1 -1
  6. package/lib/analyzers/MethodAnalyzer.js +18 -5
  7. package/lib/analyzers/MethodAnalyzer.js.map +1 -1
  8. package/lib/archivers/FileArchiver.d.ts +3 -3
  9. package/lib/archivers/FileArchiver.js +16 -7
  10. package/lib/archivers/FileArchiver.js.map +1 -1
  11. package/lib/executable/migrate.js +16 -7
  12. package/lib/executable/migrate.js.map +1 -1
  13. package/lib/programmers/ApiFileProgrammer.d.ts +17 -0
  14. package/lib/programmers/ApiFileProgrammer.js +28 -0
  15. package/lib/programmers/ApiFileProgrammer.js.map +1 -0
  16. package/lib/programmers/ApiFunctionProgrammer.d.ts +13 -0
  17. package/lib/programmers/ApiFunctionProgrammer.js +85 -0
  18. package/lib/programmers/ApiFunctionProgrammer.js.map +1 -0
  19. package/lib/programmers/ApiNamespaceProgrammer.d.ts +13 -0
  20. package/lib/programmers/ApiNamespaceProgrammer.js +134 -0
  21. package/lib/programmers/ApiNamespaceProgrammer.js.map +1 -0
  22. package/lib/programmers/ApiProgrammer.d.ts +5 -0
  23. package/lib/programmers/ApiProgrammer.js +62 -0
  24. package/lib/programmers/ApiProgrammer.js.map +1 -0
  25. package/lib/programmers/DtoProgrammer.js +2 -2
  26. package/lib/programmers/DtoProgrammer.js.map +1 -1
  27. package/lib/programmers/ImportProgrammer.d.ts +2 -1
  28. package/lib/programmers/ImportProgrammer.js +19 -4
  29. package/lib/programmers/ImportProgrammer.js.map +1 -1
  30. package/lib/programmers/NestControllerProgrammer.js +2 -1
  31. package/lib/programmers/NestControllerProgrammer.js.map +1 -1
  32. package/lib/programmers/NestMethodProgrammer.js +33 -18
  33. package/lib/programmers/NestMethodProgrammer.js.map +1 -1
  34. package/lib/programmers/NestProgrammer.d.ts +1 -1
  35. package/lib/programmers/NestProgrammer.js +5 -5
  36. package/lib/programmers/NestProgrammer.js.map +1 -1
  37. package/lib/programmers/SchemaProgrammer.d.ts +1 -1
  38. package/lib/programmers/SchemaProgrammer.js +17 -17
  39. package/lib/programmers/SchemaProgrammer.js.map +1 -1
  40. package/lib/structures/IMigrateRoute.d.ts +13 -4
  41. package/lib/utils/SetupWizard.js +0 -3
  42. package/lib/utils/SetupWizard.js.map +1 -1
  43. package/lib/utils/StringUtil.d.ts +1 -0
  44. package/lib/utils/StringUtil.js +4 -2
  45. package/lib/utils/StringUtil.js.map +1 -1
  46. package/package.json +1 -1
  47. package/src/MigrateApplication.ts +36 -31
  48. package/src/analyzers/ControllerAnalyzer.ts +19 -3
  49. package/src/analyzers/MethodAnalyzer.ts +18 -5
  50. package/src/archivers/FileArchiver.ts +10 -7
  51. package/src/executable/migrate.ts +7 -7
  52. package/src/programmers/ApiFileProgrammer.ts +51 -0
  53. package/src/programmers/ApiFunctionProgrammer.ts +177 -0
  54. package/src/programmers/ApiNamespaceProgrammer.ts +395 -0
  55. package/src/programmers/ApiProgrammer.ts +68 -0
  56. package/src/programmers/DtoProgrammer.ts +3 -3
  57. package/src/programmers/ImportProgrammer.ts +37 -21
  58. package/src/programmers/NestControllerProgrammer.ts +2 -1
  59. package/src/programmers/NestMethodProgrammer.ts +39 -22
  60. package/src/programmers/NestProgrammer.ts +1 -1
  61. package/src/programmers/SchemaProgrammer.ts +22 -25
  62. package/src/structures/IMigrateRoute.ts +13 -5
  63. package/src/utils/SetupWizard.ts +0 -3
  64. package/src/utils/StringUtil.ts +11 -2
  65. package/lib/analyzers/RouteAnalyzer.d.ts +0 -0
  66. package/lib/analyzers/RouteAnalyzer.js +0 -2
  67. package/lib/analyzers/RouteAnalyzer.js.map +0 -1
  68. package/src/analyzers/RouteAnalyzer.ts +0 -0
@@ -16,7 +16,7 @@ var SchemaProgrammer;
16
16
  /* -----------------------------------------------------------
17
17
  FACADE
18
18
  ----------------------------------------------------------- */
19
- SchemaProgrammer.write = (importer) => (components) => (schema) => {
19
+ SchemaProgrammer.write = (components) => (importer) => (schema) => {
20
20
  const union = [];
21
21
  if (JsonTypeChecker_1.SwaggerTypeChecker.isUnknown(schema))
22
22
  return TypeFactory_1.TypeFactory.keyword("any");
@@ -36,16 +36,16 @@ var SchemaProgrammer;
36
36
  else if (JsonTypeChecker_1.SwaggerTypeChecker.isString(schema))
37
37
  return writeString(importer)(schema);
38
38
  else if (JsonTypeChecker_1.SwaggerTypeChecker.isArray(schema))
39
- return writeArray(importer)(components)(schema);
39
+ return writeArray(components)(importer)(schema);
40
40
  else if (JsonTypeChecker_1.SwaggerTypeChecker.isObject(schema))
41
- return writeObject(importer)(components)(schema);
41
+ return writeObject(components)(importer)(schema);
42
42
  else if (JsonTypeChecker_1.SwaggerTypeChecker.isReference(schema))
43
43
  return writeReference(importer)(schema);
44
44
  // NESTED UNION
45
45
  else if (JsonTypeChecker_1.SwaggerTypeChecker.isAnyOf(schema))
46
- return writeUnion(importer)(components)(schema.anyOf);
46
+ return writeUnion(components)(importer)(schema.anyOf);
47
47
  else if (JsonTypeChecker_1.SwaggerTypeChecker.isOneOf(schema))
48
- return writeUnion(importer)(components)(schema.oneOf);
48
+ return writeUnion(components)(importer)(schema.oneOf);
49
49
  else
50
50
  return TypeFactory_1.TypeFactory.keyword("any");
51
51
  })();
@@ -108,9 +108,9 @@ var SchemaProgrammer;
108
108
  /* -----------------------------------------------------------
109
109
  INSTANCES
110
110
  ----------------------------------------------------------- */
111
- const writeArray = (importer) => (components) => (schema) => {
111
+ const writeArray = (components) => (importer) => (schema) => {
112
112
  const intersection = [
113
- typescript_1.default.factory.createArrayTypeNode(SchemaProgrammer.write(importer)(components)(schema.items)),
113
+ typescript_1.default.factory.createArrayTypeNode(SchemaProgrammer.write(components)(importer)(schema.items)),
114
114
  ];
115
115
  if (schema.minItems !== undefined)
116
116
  intersection.push(importer.tag("MinItems", schema.minItems));
@@ -120,38 +120,38 @@ var SchemaProgrammer;
120
120
  ? intersection[0]
121
121
  : typescript_1.default.factory.createIntersectionTypeNode(intersection);
122
122
  };
123
- const writeObject = (importer) => (components) => (schema) => {
123
+ const writeObject = (components) => (importer) => (schema) => {
124
124
  var _a;
125
125
  const regular = () => {
126
126
  var _a;
127
127
  return typescript_1.default.factory.createTypeLiteralNode(Object.entries((_a = schema.properties) !== null && _a !== void 0 ? _a : []).map(([key, value]) => {
128
128
  var _a;
129
- return writeRegularProperty(importer)(components)((_a = schema.required) !== null && _a !== void 0 ? _a : [])(key, value);
129
+ return writeRegularProperty(components)(importer)((_a = schema.required) !== null && _a !== void 0 ? _a : [])(key, value);
130
130
  }));
131
131
  };
132
132
  const dynamic = () => typescript_1.default.factory.createTypeLiteralNode([
133
- writeDynamicProperty(importer)(components)(schema.additionalProperties),
133
+ writeDynamicProperty(components)(importer)(schema.additionalProperties),
134
134
  ]);
135
- return FilePrinter_1.FilePrinter.description(!!((_a = schema.properties) === null || _a === void 0 ? void 0 : _a.length) &&
135
+ return !!((_a = schema.properties) === null || _a === void 0 ? void 0 : _a.length) &&
136
136
  typeof schema.additionalProperties === "object"
137
137
  ? typescript_1.default.factory.createIntersectionTypeNode([regular(), dynamic()])
138
138
  : typeof schema.additionalProperties === "object"
139
139
  ? dynamic()
140
- : regular(), writeComment(schema));
140
+ : regular();
141
141
  };
142
- const writeRegularProperty = (importer) => (components) => (required) => (key, value) => FilePrinter_1.FilePrinter.description(typescript_1.default.factory.createPropertySignature(undefined, Escaper_1.Escaper.variable(key)
142
+ const writeRegularProperty = (components) => (importer) => (required) => (key, value) => FilePrinter_1.FilePrinter.description(typescript_1.default.factory.createPropertySignature(undefined, Escaper_1.Escaper.variable(key)
143
143
  ? typescript_1.default.factory.createIdentifier(key)
144
144
  : typescript_1.default.factory.createStringLiteral(key), required.includes(key)
145
145
  ? undefined
146
- : typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken), SchemaProgrammer.write(importer)(components)(value)), writeComment(value));
147
- const writeDynamicProperty = (importer) => (components) => (value) => FilePrinter_1.FilePrinter.description(typescript_1.default.factory.createIndexSignature(undefined, [
146
+ : typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken), SchemaProgrammer.write(components)(importer)(value)), writeComment(value));
147
+ const writeDynamicProperty = (components) => (importer) => (value) => FilePrinter_1.FilePrinter.description(typescript_1.default.factory.createIndexSignature(undefined, [
148
148
  typescript_1.default.factory.createParameterDeclaration(undefined, undefined, typescript_1.default.factory.createIdentifier("key"), undefined, TypeFactory_1.TypeFactory.keyword("string")),
149
- ], SchemaProgrammer.write(importer)(components)(value)), writeComment(value));
149
+ ], SchemaProgrammer.write(components)(importer)(value)), writeComment(value));
150
150
  const writeReference = (importer) => (schema) => importer.dto(schema.$ref.split("/").at(-1));
151
151
  /* -----------------------------------------------------------
152
152
  UNIONS
153
153
  ----------------------------------------------------------- */
154
- const writeUnion = (importer) => (components) => (elements) => typescript_1.default.factory.createUnionTypeNode(elements.map(SchemaProgrammer.write(importer)(components)));
154
+ const writeUnion = (components) => (importer) => (elements) => typescript_1.default.factory.createUnionTypeNode(elements.map(SchemaProgrammer.write(components)(importer)));
155
155
  })(SchemaProgrammer || (exports.SchemaProgrammer = SchemaProgrammer = {}));
156
156
  const createNode = (text) => typescript_1.default.factory.createTypeReferenceNode(text);
157
157
  const writeComment = (schema) => {
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/SchemaProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAC5B,6EAA0E;AAC1E,iEAA8D;AAC9D,+EAA4E;AAC5E,qDAAkD;AAIlD,sDAAmD;AACnD,8DAA8D;AAG9D,IAAiB,gBAAgB,CAuOhC;AAvOD,WAAiB,gBAAgB;IAC/B;;kEAE8D;IACjD,sBAAK,GAChB,CAAC,QAA0B,EAAE,EAAE,CAC/B,CAAC,UAA8B,EAAE,EAAE,CACnC,CAAC,MAAsB,EAAe,EAAE;QACtC,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,IAAI,oCAAkB,CAAC,SAAS,CAAC,MAAM,CAAC;YACtC,OAAO,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC/B,IAAI,oCAAkB,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;aACrE,IAAI,oCAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjC,MAAM,IAAI,GAAgB,CAAC,GAAG,EAAE;YAC9B,SAAS;YACT,IAAI,oCAAkB,CAAC,SAAS,CAAC,MAAM,CAAC;gBAAE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;iBACjE,IAAI,oCAAkB,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC3C,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;iBACnC,IAAI,oCAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC1C,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;YACvC,YAAY;iBACP,IAAI,oCAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC1C,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;iBAClC,IAAI,oCAAkB,CAAC,OAAO,CAAC,MAAM,CAAC;gBACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;iBAC7C,IAAI,oCAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC1C,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;iBAC9C,IAAI,oCAAkB,CAAC,WAAW,CAAC,MAAM,CAAC;gBAC7C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;YAC1C,eAAe;iBACV,IAAI,oCAAkB,CAAC,OAAO,CAAC,MAAM,CAAC;gBACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnD,IAAI,oCAAkB,CAAC,OAAO,CAAC,MAAM,CAAC;gBACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;gBACnD,OAAO,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,EAAE,CAAC;QACL,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACrD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEJ;;kEAE8D;IAC9D,MAAM,YAAY,GAAG,CAAC,MAA+B,EAAe,EAAE;;QACpE,IAAI,MAAA,MAAM,CAAC,IAAI,0CAAE,MAAM;YACrB,OAAO,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CACrC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CACpE,CAAC;QACJ,OAAO,yBAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,YAAY,GAChB,CAAC,QAA0B,EAAE,EAAE,CAC/B,CAAC,MAA+B,EAAe,EAAE,CAC/C,YAAY,CAAC,GAAG,EAAE,CAAC;QACjB,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC7B,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;KAC9B,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,WAAW,GACf,CAAC,QAA0B,EAAE,EAAE,CAC/B,CAAC,MAA8B,EAAe,EAAE,CAC9C,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IAE1E,MAAM,YAAY,GAChB,CAAC,OAA4B,EAAE,EAAE,CACjC,CAAC,QAA0B,EAAE,EAAE,CAC/B,CAAC,MAAwD,EAAe,EAAE;;QACxE,IAAI,MAAA,MAAM,CAAC,IAAI,0CAAE,MAAM;YACrB,OAAO,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CACnC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,qCAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAC9D,CACF,CAAC;QACJ,MAAM,YAAY,GAAkB,OAAO,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAC9B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAC9B,YAAY,CAAC,IAAI,CACf,QAAQ,CAAC,GAAG,CACV,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EACxD,MAAM,CAAC,OAAO,CACf,CACF,CAAC;QACJ,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAC9B,YAAY,CAAC,IAAI,CACf,QAAQ,CAAC,GAAG,CACV,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EACxD,MAAM,CAAC,OAAO,CACf,CACF,CAAC;QACJ,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YACjC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAEnE,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YACjB,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEJ,MAAM,WAAW,GACf,CAAC,QAA0B,EAAE,EAAE,CAC/B,CAAC,MAA8B,EAAe,EAAE;QAC9C,MAAM,YAAY,GAAkB,CAAC,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAC9B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAChC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAChC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAC9B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,IACE,MAAM,CAAC,MAAM,KAAK,SAAS;YAC1B,mCAA2C,CAAC,MAAM,CAAC,MAAM,CAAC;gBACzD,SAAS;YAEX,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YACjB,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEJ;;kEAE8D;IAC9D,MAAM,UAAU,GACd,CAAC,QAA0B,EAAE,EAAE,CAC/B,CAAC,UAA8B,EAAE,EAAE,CACnC,CAAC,MAA6B,EAAe,EAAE;QAC7C,MAAM,YAAY,GAAkB;YAClC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,iBAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAC1C;SACF,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAC/B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAC/B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YACjB,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEJ,MAAM,WAAW,GACf,CAAC,QAA0B,EAAE,EAAE,CAC/B,CAAC,UAA8B,EAAE,EAAE,CACnC,CAAC,MAA8B,EAAe,EAAE;;QAC9C,MAAM,OAAO,GAAG,GAAG,EAAE;;YACnB,OAAA,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,MAAM,CAAC,OAAO,CAAC,MAAA,MAAM,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;;gBAC3D,OAAA,oBAAoB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,MAAA,MAAM,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAC/D,GAAG,EACH,KAAK,CACN,CAAA;aAAA,CACF,CACF,CAAA;SAAA,CAAC;QACJ,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC;YAC/B,oBAAoB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CACxC,MAAM,CAAC,oBAAsC,CAC9C;SACF,CAAC,CAAC;QACL,OAAO,yBAAW,CAAC,WAAW,CAC5B,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,MAAM,CAAA;YACzB,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ;YAC/C,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ;gBAC/C,CAAC,CAAC,OAAO,EAAE;gBACX,CAAC,CAAC,OAAO,EAAE,EACf,YAAY,CAAC,MAAM,CAAC,CACrB,CAAC;IACJ,CAAC,CAAC;IAEJ,MAAM,oBAAoB,GACxB,CAAC,QAA0B,EAAE,EAAE,CAC/B,CAAC,UAA8B,EAAE,EAAE,CACnC,CAAC,QAAkB,EAAE,EAAE,CACvB,CAAC,GAAW,EAAE,KAAqB,EAAE,EAAE,CACrC,yBAAW,CAAC,WAAW,CACrB,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAChC,SAAS,EACT,iBAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QACnB,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAClC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,EACvC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QACpB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EACvD,iBAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CACnC,EACD,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;IAEN,MAAM,oBAAoB,GACxB,CAAC,QAA0B,EAAE,EAAE,CAC/B,CAAC,UAA8B,EAAE,EAAE,CACnC,CAAC,KAAqB,EAAE,EAAE,CACxB,yBAAW,CAAC,WAAW,CACrB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,SAAS,EACT;QACE,oBAAE,CAAC,OAAO,CAAC,0BAA0B,CACnC,SAAS,EACT,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAClC,SAAS,EACT,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC9B;KACF,EACD,iBAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CACnC,EACD,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;IAEN,MAAM,cAAc,GAClB,CAAC,QAA0B,EAAE,EAAE,CAC/B,CAAC,MAAiC,EAAwB,EAAE,CAC1D,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IAEjD;;kEAE8D;IAC9D,MAAM,UAAU,GACd,CAAC,QAA0B,EAAE,EAAE,CAC/B,CAAC,UAA8B,EAAE,EAAE,CACnC,CAAC,QAA0B,EAAoB,EAAE,CAC/C,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,EAvOgB,gBAAgB,gCAAhB,gBAAgB,QAuOhC;AACD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;AAC9E,MAAM,YAAY,GAAG,CAAC,MAAsB,EAAU,EAAE;;IACtD,OAAA;QACE,GAAG,CAAC,CAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,MAAM,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,CAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,MAAM;YAC9B,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC;YACxD,CAAC,CAAC,CAAC,EAAE,CAAC;YACN,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;CAAA,CAAC"}
1
+ {"version":3,"file":"SchemaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/SchemaProgrammer.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
- import { IJsDocTagInfo } from "typia/lib/schemas/metadata/IJsDocTagInfo";
2
1
  import { ISwaggerSchema } from "./ISwaggeSchema";
3
2
  export interface IMigrateRoute {
4
3
  name: string;
5
4
  path: string;
6
5
  method: string;
7
6
  parameters: IMigrateRoute.IParameter[];
8
- headers: ISwaggerSchema | null;
9
- query: ISwaggerSchema | null;
7
+ headers: IMigrateRoute.IHeaders | null;
8
+ query: IMigrateRoute.IQuery | null;
10
9
  body: IMigrateRoute.IBody | null;
11
10
  success: IMigrateRoute.IBody | null;
12
11
  exceptions: Record<string, IMigrateRoute.IException>;
13
12
  description?: string;
14
- "x-nestia-jsDocTags"?: IJsDocTagInfo[];
13
+ tags: string[];
14
+ deprecated: boolean;
15
15
  }
16
16
  export declare namespace IMigrateRoute {
17
17
  interface IParameter {
@@ -19,7 +19,16 @@ export declare namespace IMigrateRoute {
19
19
  schema: ISwaggerSchema;
20
20
  description?: string;
21
21
  }
22
+ interface IHeaders {
23
+ key: string;
24
+ schema: ISwaggerSchema;
25
+ }
26
+ interface IQuery {
27
+ key: string;
28
+ schema: ISwaggerSchema;
29
+ }
22
30
  interface IBody {
31
+ key: string;
23
32
  type: "text/plain" | "application/json" | "application/x-www-form-urlencoded";
24
33
  schema: ISwaggerSchema;
25
34
  "x-nestia-encrypted"?: boolean;
@@ -9,9 +9,6 @@ var SetupWizard;
9
9
  (function (SetupWizard) {
10
10
  SetupWizard.setup = (output) => {
11
11
  execute(output)("npm install");
12
- execute(output)("npx nestia e2e", "npm run build:sdk");
13
- execute(output)("npm run build:test");
14
- execute(output)("npm run test");
15
12
  };
16
13
  const execute = (cwd) => (command, fake) => {
17
14
  console.log(fake !== null && fake !== void 0 ? fake : command);
@@ -1 +1 @@
1
- {"version":3,"file":"SetupWizard.js","sourceRoot":"","sources":["../../src/utils/SetupWizard.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA+B;AAE/B,IAAiB,WAAW,CAY3B;AAZD,WAAiB,WAAW;IACb,iBAAK,GAAG,CAAC,MAAc,EAAE,EAAE;QACtC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;QAClE,OAAO,CAAC,GAAG,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,OAAO,CAAC,CAAC;QAC7B,uBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC,EAZgB,WAAW,2BAAX,WAAW,QAY3B"}
1
+ {"version":3,"file":"SetupWizard.js","sourceRoot":"","sources":["../../src/utils/SetupWizard.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA+B;AAE/B,IAAiB,WAAW,CAS3B;AATD,WAAiB,WAAW;IACb,iBAAK,GAAG,CAAC,MAAc,EAAE,EAAE;QACtC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;QAClE,OAAO,CAAC,GAAG,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,OAAO,CAAC,CAAC;QAC7B,uBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC,EATgB,WAAW,2BAAX,WAAW,QAS3B"}
@@ -6,4 +6,5 @@ export declare namespace StringUtil {
6
6
  const reJoinWithDecimalParameters: (path: string) => string;
7
7
  const normalize: (str: string) => string;
8
8
  const commonPrefix: (strs: string[]) => string;
9
+ const escapeDuplicate: (keep: string[]) => (change: string) => string;
9
10
  }
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StringUtil = void 0;
4
+ const NamingConvention_1 = require("typia/lib/utils/NamingConvention");
4
5
  var StringUtil;
5
6
  (function (StringUtil) {
6
7
  StringUtil.capitalize = (str) => str[0].toUpperCase() + str.slice(1).toLowerCase();
7
8
  StringUtil.pascal = (path) => StringUtil.splitWithNormalization(path)
8
9
  .filter((str) => str[0] !== "{")
9
- .map(StringUtil.capitalize)
10
+ .map(NamingConvention_1.NamingConvention.pascal)
10
11
  .join("");
11
12
  StringUtil.camel = (path) => StringUtil.splitWithNormalization(path)
12
- .map((str, i) => (i === 0 ? str : StringUtil.capitalize(str)))
13
+ .map((str, i) => i === 0 ? NamingConvention_1.NamingConvention.camel(str) : NamingConvention_1.NamingConvention.pascal(str))
13
14
  .join("");
14
15
  StringUtil.splitWithNormalization = (path) => path
15
16
  .split("/")
@@ -39,5 +40,6 @@ var StringUtil;
39
40
  .filter((str) => str[0] !== "{" || str[str.length - 1] === "}")
40
41
  .join("/");
41
42
  };
43
+ StringUtil.escapeDuplicate = (keep) => (change) => keep.includes(change) ? StringUtil.escapeDuplicate(keep)(`_${change}`) : change;
42
44
  })(StringUtil || (exports.StringUtil = StringUtil = {}));
43
45
  //# sourceMappingURL=StringUtil.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringUtil.js","sourceRoot":"","sources":["../../src/utils/StringUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StringUtil.js","sourceRoot":"","sources":["../../src/utils/StringUtil.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AAEpE,IAAiB,UAAU,CAyD1B;AAzDD,WAAiB,UAAU;IACZ,qBAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CACxC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAEvC,iBAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CACrC,WAAA,sBAAsB,CAAC,IAAI,CAAC;SACzB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;SAC/B,GAAG,CAAC,mCAAgB,CAAC,MAAM,CAAC;SAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IAED,gBAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CACpC,WAAA,sBAAsB,CAAC,IAAI,CAAC;SACzB,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACd,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CACrE;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IAED,iCAAsB,GAAG,CAAC,IAAY,EAAE,EAAE,CACrD,IAAI;SACD,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAA,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;SACnC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtB,sCAA2B,GAAG,CAAC,IAAY,EAAE,EAAE,CAC1D,IAAI;SACD,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;SAC7B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;QAC3C,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;QACxC,CAAC,CAAC,GAAG,CACR;SACA,IAAI,CAAC,GAAG,CAAC,CAAC;IAEF,oBAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CACvC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnC,uBAAY,GAAG,CAAC,IAAc,EAAU,EAAE;QACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEjC,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAChD,IAAI,MAAM,KAAK,EAAE;oBAAE,OAAO,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,OAAO,MAAM;aACV,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;aAC9D,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC;IAEW,0BAAe,GAC1B,CAAC,IAAc,EAAE,EAAE,CACnB,CAAC,MAAc,EAAU,EAAE,CACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAA,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3E,CAAC,EAzDgB,UAAU,0BAAV,UAAU,QAyD1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestia/migrate",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "Migration program from swagger to NestJS",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -5,7 +5,8 @@ import typia from "typia";
5
5
  import { MigrateAnalyzer } from "./analyzers/MigrateAnalyzer";
6
6
  import { FileArchiver } from "./archivers/FileArchiver";
7
7
  import { TEMPLATE } from "./bundles/TEMPLATE";
8
- import { MigrateProgrammer } from "./programmers/NestProgrammer";
8
+ import { ApiProgrammer } from "./programmers/ApiProgrammer";
9
+ import { NestProgrammer } from "./programmers/NestProgrammer";
9
10
  import { IMigrateFile } from "./structures/IMigrateFile";
10
11
  import { IMigrateProgram } from "./structures/IMigrateProgram";
11
12
  import { ISwagger } from "./structures/ISwagger";
@@ -29,41 +30,45 @@ export class MigrateApplication {
29
30
 
30
31
  public write(): IMigrateFile[] {
31
32
  if (this.files === null) {
32
- const program: IMigrateProgram = this.analyze();
33
- this.files = MigrateProgrammer.write(program);
33
+ this.program ??= this.analyze();
34
+ this.files = [
35
+ ...NestProgrammer.write(this.program),
36
+ ...ApiProgrammer.write(this.program),
37
+ ];
34
38
  }
35
39
  return this.files;
36
40
  }
37
41
 
38
- public generate =
39
- (archiver: NestiaMigrateApplication.IArchiver) =>
40
- (output: string): void => {
41
- const program: IMigrateProgram = this.analyze();
42
- const files: IMigrateFile[] = MigrateProgrammer.write(program);
43
-
42
+ public async generate(output: string): Promise<void> {
43
+ const files: IMigrateFile[] = this.write();
44
+ const archiver = FileArchiver.archive({
45
+ mkdir: fs.promises.mkdir,
46
+ writeFile: (file, content) =>
47
+ fs.promises.writeFile(file, content, "utf8"),
48
+ })(output);
49
+ try {
50
+ cp.execSync(
51
+ `git clone https://github.com/samchon/nestia-template "${output}"`,
52
+ { stdio: "ignore" },
53
+ );
44
54
  try {
45
- cp.execSync(
46
- `git clone https://github.com/samchon/nestia-template "${output}"`,
47
- { stdio: "ignore" },
48
- );
49
- try {
50
- for (const path of [
51
- "/.git",
52
- "/src/api",
53
- "/src/controllers",
54
- "/src/providers",
55
- "/test/features",
56
- ])
57
- fs.rmSync(`${output}${path}`, {
58
- recursive: true,
59
- force: true,
60
- });
61
- } catch {}
62
- } catch {
63
- FileArchiver.archive(archiver)(output)(TEMPLATE);
64
- }
65
- FileArchiver.archive(archiver)(output)(files);
66
- };
55
+ for (const path of [
56
+ "/.git",
57
+ "/src/api",
58
+ "/src/controllers",
59
+ "/src/providers",
60
+ "/test/features",
61
+ ])
62
+ fs.rmSync(`${output}${path}`, {
63
+ recursive: true,
64
+ force: true,
65
+ });
66
+ } catch {}
67
+ } catch {
68
+ await archiver(TEMPLATE);
69
+ }
70
+ await archiver(files);
71
+ }
67
72
  }
68
73
  export namespace NestiaMigrateApplication {
69
74
  export interface IArchiver {
@@ -1,3 +1,5 @@
1
+ import { Escaper } from "typia/lib/utils/Escaper";
2
+
1
3
  import { ISwagger } from "../module";
2
4
  import { IMigrateController } from "../structures/IMigrateController";
3
5
  import { IMigrateRoute } from "../structures/IMigrateRoute";
@@ -62,7 +64,7 @@ export namespace ControllerAnalyzer {
62
64
  routes,
63
65
  };
64
66
  if (controller.name === "Controller") controller.name = "__Controller";
65
- naming(controller);
67
+ emend(controller);
66
68
  return controller;
67
69
  });
68
70
  };
@@ -73,7 +75,7 @@ export namespace ControllerAnalyzer {
73
75
  .slice(0, -1)
74
76
  .reverse();
75
77
 
76
- const naming = (controller: IMigrateController): void => {
78
+ const emend = (controller: IMigrateController): void => {
77
79
  interface IRouteCapsule {
78
80
  variables: string[];
79
81
  route: IMigrateRoute;
@@ -93,7 +95,6 @@ export namespace ControllerAnalyzer {
93
95
  route,
94
96
  });
95
97
  }
96
-
97
98
  for (const [method, capsules] of dict) {
98
99
  const emended: string = method === "delete" ? "erase" : method;
99
100
  for (const c of capsules) {
@@ -103,5 +104,20 @@ export namespace ControllerAnalyzer {
103
104
  : StringUtil.camel(`${emended}By/${c.variables.join("/and/")}`);
104
105
  }
105
106
  }
107
+ for (const method of controller.routes) {
108
+ if (Escaper.variable(method.name) === false)
109
+ method.name = "_" + method.name;
110
+ for (const spec of [method.headers, method.query, method.body])
111
+ if (spec)
112
+ spec.key = StringUtil.escapeDuplicate(
113
+ method.parameters.map((p) => p.key),
114
+ )(spec.key);
115
+ }
116
+ controller.routes.forEach(
117
+ (r, i) =>
118
+ (r.name = StringUtil.escapeDuplicate(
119
+ controller.routes.filter((_r, j) => i !== j).map((x) => x.name),
120
+ )(r.name)),
121
+ );
106
122
  };
107
123
  }
@@ -161,14 +161,18 @@ export namespace MethodAnalzyer {
161
161
  name: "@lazy",
162
162
  path: props.path,
163
163
  method: props.method,
164
- headers,
164
+ headers: headers
165
+ ? {
166
+ key: "headers",
167
+ schema: headers,
168
+ }
169
+ : null,
165
170
  parameters: (route.parameters ?? [])
166
171
  .filter((p) => p.in === "path")
167
172
  .map((p, i) => ({
168
173
  key: (() => {
169
174
  let key: string = StringUtil.normalize(parameterNames[i]);
170
175
  if (Escaper.variable(key)) return key;
171
-
172
176
  while (true) {
173
177
  key = "_" + key;
174
178
  if (!parameterNames.some((s) => s === key)) return key;
@@ -179,7 +183,12 @@ export namespace MethodAnalzyer {
179
183
  description: p.schema.description ?? p.description,
180
184
  },
181
185
  })),
182
- query,
186
+ query: query
187
+ ? {
188
+ key: "query",
189
+ schema: query,
190
+ }
191
+ : null,
183
192
  body,
184
193
  success,
185
194
  exceptions: Object.fromEntries(
@@ -198,8 +207,9 @@ export namespace MethodAnalzyer {
198
207
  },
199
208
  ]),
200
209
  ),
210
+ deprecated: route.deprecated ?? false,
201
211
  description: describe(route),
202
- "x-nestia-jsDocTags": route["x-nestia-jsDocTags"],
212
+ tags: route.tags ?? [],
203
213
  };
204
214
  };
205
215
 
@@ -274,6 +284,7 @@ export namespace MethodAnalzyer {
274
284
  const { schema } = json[1];
275
285
  return {
276
286
  type: "application/json",
287
+ key: "body",
277
288
  schema: isNotObjectLiteral(schema) ? schema : emplacer(schema),
278
289
  "x-nestia-encrypted": meta["x-nestia-encrypted"],
279
290
  };
@@ -286,12 +297,14 @@ export namespace MethodAnalzyer {
286
297
  const { schema } = query[1];
287
298
  return {
288
299
  type: "application/x-www-form-urlencoded",
300
+ key: "body",
289
301
  schema: isNotObjectLiteral(schema) ? schema : emplacer(schema),
290
302
  };
291
303
  }
292
304
 
293
305
  const text = entries.find((e) => e[0].includes("text/plain"));
294
- if (text) return { type: "text/plain", schema: { type: "string" } };
306
+ if (text)
307
+ return { type: "text/plain", key: "body", schema: { type: "string" } };
295
308
  return false;
296
309
  };
297
310
 
@@ -2,18 +2,21 @@ import { IMigrateFile } from "../structures/IMigrateFile";
2
2
 
3
3
  export namespace FileArchiver {
4
4
  export interface IOperator {
5
- mkdir(path: string): void;
6
- writeFile(path: string, content: string): void;
5
+ mkdir(path: string): Promise<void>;
6
+ writeFile(path: string, content: string): Promise<void>;
7
7
  }
8
8
 
9
9
  export const archive =
10
10
  (operator: IOperator) =>
11
11
  (output: string) =>
12
- (files: IMigrateFile[]): void => {
12
+ async (files: IMigrateFile[]): Promise<void> => {
13
13
  const visited: Set<string> = new Set();
14
14
  for (const f of files) {
15
- mkdir(operator.mkdir)(output)(visited)(f.location);
16
- operator.writeFile([output, f.location, f.file].join("/"), f.content);
15
+ await mkdir(operator.mkdir)(output)(visited)(f.location);
16
+ await operator.writeFile(
17
+ [output, f.location, f.file].join("/"),
18
+ f.content,
19
+ );
17
20
  }
18
21
  };
19
22
 
@@ -21,14 +24,14 @@ export namespace FileArchiver {
21
24
  (creator: (path: string) => void) =>
22
25
  (output: string) =>
23
26
  (visited: Set<string>) =>
24
- (path: string): void => {
27
+ async (path: string): Promise<void> => {
25
28
  const sequence: string[] = path
26
29
  .split("/")
27
30
  .map((_str, i, entire) => entire.slice(0, i + 1).join("/"));
28
31
  for (const s of sequence)
29
32
  if (visited.has(s) === false)
30
33
  try {
31
- creator([output, s].join("/"));
34
+ await creator([output, s].join("/"));
32
35
  visited.add(s);
33
36
  } catch {}
34
37
  };
@@ -18,7 +18,7 @@ function halt(desc: string): never {
18
18
  process.exit(-1);
19
19
  }
20
20
 
21
- const main = (argv: string[]) => {
21
+ const main = async (argv: string[]): Promise<void> => {
22
22
  const resolve = (str: string | undefined) =>
23
23
  str ? path.resolve(str).split("\\").join("/") : undefined;
24
24
  const input: string | undefined = resolve(argv[0]);
@@ -47,13 +47,13 @@ const main = (argv: string[]) => {
47
47
  })();
48
48
 
49
49
  // DO GENERATE
50
- const app = new MigrateApplication(swagger);
51
- app.generate({
52
- mkdir: fs.mkdirSync,
53
- writeFile: (path, content) => fs.writeFileSync(path, content, "utf8"),
54
- })(output);
50
+ const app: MigrateApplication = new MigrateApplication(swagger);
51
+ await app.generate(output);
55
52
 
56
53
  // RUN SCRIPTS
57
54
  SetupWizard.setup(output);
58
55
  };
59
- main(process.argv.slice(2));
56
+ main(process.argv.slice(2)).catch((exp) => {
57
+ console.error(exp);
58
+ process.exit(-1);
59
+ });
@@ -0,0 +1,51 @@
1
+ import ts from "typescript";
2
+
3
+ import { IMigrateController } from "../structures/IMigrateController";
4
+ import { IMigrateRoute } from "../structures/IMigrateRoute";
5
+ import { ISwaggerComponents } from "../structures/ISwaggerComponents";
6
+ import { ApiFunctionProgrammer } from "./ApiFunctionProgrammer";
7
+ import { ApiNamespaceProgrammer } from "./ApiNamespaceProgrammer";
8
+ import { ImportProgrammer } from "./ImportProgrammer";
9
+
10
+ export namespace ApiFileProgrammer {
11
+ export interface IProps {
12
+ namespace: string[];
13
+ entries: IEntry[];
14
+ children: Set<string>;
15
+ }
16
+ export interface IEntry {
17
+ controller: IMigrateController;
18
+ route: IMigrateRoute;
19
+ alias: string;
20
+ }
21
+
22
+ export const write =
23
+ (components: ISwaggerComponents) =>
24
+ (props: IProps): ts.Statement[] => {
25
+ const importer: ImportProgrammer = new ImportProgrammer();
26
+ const statements: ts.Statement[] = props.entries
27
+ .map((p) => [
28
+ ApiFunctionProgrammer.write(components)(importer)(p),
29
+ ApiNamespaceProgrammer.write(components)(importer)(p),
30
+ ])
31
+ .flat();
32
+ return [
33
+ ...importer.toStatements(
34
+ (ref) =>
35
+ `../${"../".repeat(props.namespace.length)}structures/${ref}`,
36
+ ),
37
+ ...[...props.children].map((child) =>
38
+ ts.factory.createExportDeclaration(
39
+ undefined,
40
+ false,
41
+ ts.factory.createNamespaceExport(
42
+ ts.factory.createIdentifier(child),
43
+ ),
44
+ ts.factory.createStringLiteral(`./${child}`),
45
+ undefined,
46
+ ),
47
+ ),
48
+ ...statements,
49
+ ];
50
+ };
51
+ }