@tsoa-next/cli 7.1.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 (122) hide show
  1. package/README.MD +3 -0
  2. package/dist/cli.d.ts +44 -0
  3. package/dist/cli.js +356 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/index.d.ts +6 -0
  6. package/dist/index.js +25 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/metadataGeneration/controllerGenerator.d.ts +30 -0
  9. package/dist/metadataGeneration/controllerGenerator.js +229 -0
  10. package/dist/metadataGeneration/controllerGenerator.js.map +1 -0
  11. package/dist/metadataGeneration/exceptions.d.ts +13 -0
  12. package/dist/metadataGeneration/exceptions.js +53 -0
  13. package/dist/metadataGeneration/exceptions.js.map +1 -0
  14. package/dist/metadataGeneration/extension.d.ts +5 -0
  15. package/dist/metadataGeneration/extension.js +85 -0
  16. package/dist/metadataGeneration/extension.js.map +1 -0
  17. package/dist/metadataGeneration/initializer-value.d.ts +6 -0
  18. package/dist/metadataGeneration/initializer-value.js +154 -0
  19. package/dist/metadataGeneration/initializer-value.js.map +1 -0
  20. package/dist/metadataGeneration/metadataGenerator.d.ts +29 -0
  21. package/dist/metadataGeneration/metadataGenerator.js +220 -0
  22. package/dist/metadataGeneration/metadataGenerator.js.map +1 -0
  23. package/dist/metadataGeneration/methodGenerator.d.ts +45 -0
  24. package/dist/metadataGeneration/methodGenerator.js +367 -0
  25. package/dist/metadataGeneration/methodGenerator.js.map +1 -0
  26. package/dist/metadataGeneration/parameterGenerator.d.ts +33 -0
  27. package/dist/metadataGeneration/parameterGenerator.js +552 -0
  28. package/dist/metadataGeneration/parameterGenerator.js.map +1 -0
  29. package/dist/metadataGeneration/transformer/dateTransformer.d.ts +6 -0
  30. package/dist/metadataGeneration/transformer/dateTransformer.js +28 -0
  31. package/dist/metadataGeneration/transformer/dateTransformer.js.map +1 -0
  32. package/dist/metadataGeneration/transformer/enumTransformer.d.ts +12 -0
  33. package/dist/metadataGeneration/transformer/enumTransformer.js +75 -0
  34. package/dist/metadataGeneration/transformer/enumTransformer.js.map +1 -0
  35. package/dist/metadataGeneration/transformer/primitiveTransformer.d.ts +11 -0
  36. package/dist/metadataGeneration/transformer/primitiveTransformer.js +70 -0
  37. package/dist/metadataGeneration/transformer/primitiveTransformer.js.map +1 -0
  38. package/dist/metadataGeneration/transformer/propertyTransformer.d.ts +12 -0
  39. package/dist/metadataGeneration/transformer/propertyTransformer.js +101 -0
  40. package/dist/metadataGeneration/transformer/propertyTransformer.js.map +1 -0
  41. package/dist/metadataGeneration/transformer/referenceTransformer.d.ts +10 -0
  42. package/dist/metadataGeneration/transformer/referenceTransformer.js +81 -0
  43. package/dist/metadataGeneration/transformer/referenceTransformer.js.map +1 -0
  44. package/dist/metadataGeneration/transformer/transformer.d.ts +9 -0
  45. package/dist/metadataGeneration/transformer/transformer.js +39 -0
  46. package/dist/metadataGeneration/transformer/transformer.js.map +1 -0
  47. package/dist/metadataGeneration/typeResolver.d.ts +52 -0
  48. package/dist/metadataGeneration/typeResolver.js +1202 -0
  49. package/dist/metadataGeneration/typeResolver.js.map +1 -0
  50. package/dist/module/generate-routes.d.ts +9 -0
  51. package/dist/module/generate-routes.js +90 -0
  52. package/dist/module/generate-routes.js.map +1 -0
  53. package/dist/module/generate-spec.d.ts +9 -0
  54. package/dist/module/generate-spec.js +79 -0
  55. package/dist/module/generate-spec.js.map +1 -0
  56. package/dist/routeGeneration/defaultRouteGenerator.d.ts +12 -0
  57. package/dist/routeGeneration/defaultRouteGenerator.js +119 -0
  58. package/dist/routeGeneration/defaultRouteGenerator.js.map +1 -0
  59. package/dist/routeGeneration/routeGenerator.d.ts +56 -0
  60. package/dist/routeGeneration/routeGenerator.js +257 -0
  61. package/dist/routeGeneration/routeGenerator.js.map +1 -0
  62. package/dist/routeGeneration/templates/express.hbs +221 -0
  63. package/dist/routeGeneration/templates/hapi.hbs +267 -0
  64. package/dist/routeGeneration/templates/koa.hbs +218 -0
  65. package/dist/swagger/specGenerator.d.ts +33 -0
  66. package/dist/swagger/specGenerator.js +253 -0
  67. package/dist/swagger/specGenerator.js.map +1 -0
  68. package/dist/swagger/specGenerator2.d.ts +27 -0
  69. package/dist/swagger/specGenerator2.js +476 -0
  70. package/dist/swagger/specGenerator2.js.map +1 -0
  71. package/dist/swagger/specGenerator3.d.ts +158 -0
  72. package/dist/swagger/specGenerator3.js +646 -0
  73. package/dist/swagger/specGenerator3.js.map +1 -0
  74. package/dist/swagger/specGenerator31.d.ts +24 -0
  75. package/dist/swagger/specGenerator31.js +75 -0
  76. package/dist/swagger/specGenerator31.js.map +1 -0
  77. package/dist/utils/decoratorUtils.d.ts +9 -0
  78. package/dist/utils/decoratorUtils.js +118 -0
  79. package/dist/utils/decoratorUtils.js.map +1 -0
  80. package/dist/utils/flowUtils.d.ts +1 -0
  81. package/dist/utils/flowUtils.js +8 -0
  82. package/dist/utils/flowUtils.js.map +1 -0
  83. package/dist/utils/fs.d.ts +5 -0
  84. package/dist/utils/fs.js +55 -0
  85. package/dist/utils/fs.js.map +1 -0
  86. package/dist/utils/genericTypeGuards.d.ts +1 -0
  87. package/dist/utils/genericTypeGuards.js +8 -0
  88. package/dist/utils/genericTypeGuards.js.map +1 -0
  89. package/dist/utils/headerTypeHelpers.d.ts +5 -0
  90. package/dist/utils/headerTypeHelpers.js +27 -0
  91. package/dist/utils/headerTypeHelpers.js.map +1 -0
  92. package/dist/utils/importClassesFromDirectories.d.ts +4 -0
  93. package/dist/utils/importClassesFromDirectories.js +20 -0
  94. package/dist/utils/importClassesFromDirectories.js.map +1 -0
  95. package/dist/utils/internalTypeGuards.d.ts +5 -0
  96. package/dist/utils/internalTypeGuards.js +66 -0
  97. package/dist/utils/internalTypeGuards.js.map +1 -0
  98. package/dist/utils/isVoidType.d.ts +2 -0
  99. package/dist/utils/isVoidType.js +16 -0
  100. package/dist/utils/isVoidType.js.map +1 -0
  101. package/dist/utils/jsDocUtils.d.ts +8 -0
  102. package/dist/utils/jsDocUtils.js +122 -0
  103. package/dist/utils/jsDocUtils.js.map +1 -0
  104. package/dist/utils/jsonUtils.d.ts +1 -0
  105. package/dist/utils/jsonUtils.js +12 -0
  106. package/dist/utils/jsonUtils.js.map +1 -0
  107. package/dist/utils/pathUtils.d.ts +9 -0
  108. package/dist/utils/pathUtils.js +37 -0
  109. package/dist/utils/pathUtils.js.map +1 -0
  110. package/dist/utils/specMerge.d.ts +2 -0
  111. package/dist/utils/specMerge.js +36 -0
  112. package/dist/utils/specMerge.js.map +1 -0
  113. package/dist/utils/swaggerUtils.d.ts +3 -0
  114. package/dist/utils/swaggerUtils.js +22 -0
  115. package/dist/utils/swaggerUtils.js.map +1 -0
  116. package/dist/utils/unspecifiedObject.d.ts +3 -0
  117. package/dist/utils/unspecifiedObject.js +3 -0
  118. package/dist/utils/unspecifiedObject.js.map +1 -0
  119. package/dist/utils/validatorUtils.d.ts +5 -0
  120. package/dist/utils/validatorUtils.js +241 -0
  121. package/dist/utils/validatorUtils.js.map +1 -0
  122. package/package.json +69 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeResolver.js","sourceRoot":"","sources":["../../src/metadataGeneration/typeResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import * as ts from 'typescript';
2
+ import { ExtendedRoutesConfig } from '../cli';
3
+ import { Tsoa } from '@tsoa-next/runtime';
4
+ import { Config as BaseConfig } from '@tsoa-next/runtime';
5
+ export declare function generateRoutes<Config extends ExtendedRoutesConfig>(routesConfig: Config, compilerOptions?: ts.CompilerOptions, ignorePaths?: string[],
6
+ /**
7
+ * pass in cached metadata returned in a previous step to speed things up
8
+ */
9
+ metadata?: Tsoa.Metadata, defaultNumberType?: BaseConfig['defaultNumberType']): Promise<Tsoa.Metadata>;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.generateRoutes = generateRoutes;
37
+ const metadataGenerator_1 = require("../metadataGeneration/metadataGenerator");
38
+ const defaultRouteGenerator_1 = require("../routeGeneration/defaultRouteGenerator");
39
+ const fs_1 = require("../utils/fs");
40
+ const path = require("path");
41
+ async function generateRoutes(routesConfig, compilerOptions, ignorePaths,
42
+ /**
43
+ * pass in cached metadata returned in a previous step to speed things up
44
+ */
45
+ metadata, defaultNumberType) {
46
+ if (!metadata) {
47
+ metadata = new metadataGenerator_1.MetadataGenerator(routesConfig.entryFile, compilerOptions, ignorePaths, routesConfig.controllerPathGlobs, routesConfig.rootSecurity, defaultNumberType).Generate();
48
+ }
49
+ const routeGenerator = await getRouteGenerator(metadata, routesConfig);
50
+ await (0, fs_1.fsMkDir)(routesConfig.routesDir, { recursive: true });
51
+ await routeGenerator.GenerateCustomRoutes();
52
+ if (routesConfig.multerOpts) {
53
+ console.warn('Config MulterOptions is deprecated since v6.4.0 instroduces RegisterRoutes can pass multerOptions,' +
54
+ 'we will quickly remove this options soon at future version.' +
55
+ '(https://github.com/lukeautry/tsoa/issues/1587#issuecomment-2391291433)' +
56
+ '(https://github.com/lukeautry/tsoa/pull/1638)');
57
+ }
58
+ return metadata;
59
+ }
60
+ async function getRouteGenerator(metadata, routesConfig) {
61
+ // default route generator for express/koa/hapi
62
+ // custom route generator
63
+ const routeGenerator = routesConfig.routeGenerator;
64
+ if (routeGenerator !== undefined) {
65
+ if (typeof routeGenerator === 'string') {
66
+ try {
67
+ // try as a module import
68
+ const module = (await Promise.resolve(`${routeGenerator}`).then(s => __importStar(require(s))));
69
+ return new module.default(metadata, routesConfig);
70
+ }
71
+ catch (_err) {
72
+ // try to find a relative import path
73
+ const relativePath = path.relative(__dirname, routeGenerator);
74
+ const module = (await Promise.resolve(`${relativePath}`).then(s => __importStar(require(s))));
75
+ return new module.default(metadata, routesConfig);
76
+ }
77
+ }
78
+ else {
79
+ return new routeGenerator(metadata, routesConfig);
80
+ }
81
+ }
82
+ if (routesConfig.middleware !== undefined || routesConfig.middlewareTemplate !== undefined) {
83
+ return new defaultRouteGenerator_1.DefaultRouteGenerator(metadata, routesConfig);
84
+ }
85
+ else {
86
+ routesConfig.middleware = 'express';
87
+ return new defaultRouteGenerator_1.DefaultRouteGenerator(metadata, routesConfig);
88
+ }
89
+ }
90
+ //# sourceMappingURL=generate-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-routes.js","sourceRoot":"","sources":["../../src/module/generate-routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,wCA6BC;AApCD,+EAA2E;AAE3E,oFAAgF;AAChF,oCAAqC;AACrC,6BAA6B;AAGtB,KAAK,UAAU,cAAc,CAClC,YAAoB,EACpB,eAAoC,EACpC,WAAsB;AACtB;;GAEG;AACH,QAAwB,EACxB,iBAAmD;IAEnD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,IAAI,qCAAiB,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,CAAC,mBAAmB,EAAE,YAAY,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAA;IACnL,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAEtE,MAAM,IAAA,YAAO,EAAC,YAAY,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1D,MAAM,cAAc,CAAC,oBAAoB,EAAE,CAAA;IAE3C,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CACV,oGAAoG;YAClG,6DAA6D;YAC7D,yEAAyE;YACzE,+CAA+C,CAClD,CAAA;IACH,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAsC,QAAuB,EAAE,YAAoB;IACjH,+CAA+C;IAC/C,yBAAyB;IACzB,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,CAAA;IAClD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,yBAAyB;gBACzB,MAAM,MAAM,GAAG,CAAC,yBAAa,cAAc,uCAAC,CAAiC,CAAA;gBAC7E,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YACnD,CAAC;YAAC,OAAO,IAAI,EAAE,CAAC;gBACd,qCAAqC;gBACrC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;gBAC7D,MAAM,MAAM,GAAG,CAAC,yBAAa,YAAY,uCAAC,CAAiC,CAAA;gBAC3E,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IACD,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,IAAI,YAAY,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC3F,OAAO,IAAI,6CAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC1D,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,UAAU,GAAG,SAAS,CAAA;QACnC,OAAO,IAAI,6CAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as ts from 'typescript';
2
+ import { ExtendedSpecConfig } from '../cli';
3
+ import { Tsoa, Config } from '@tsoa-next/runtime';
4
+ export declare const getSwaggerOutputPath: (swaggerConfig: ExtendedSpecConfig) => string;
5
+ export declare const generateSpec: (swaggerConfig: ExtendedSpecConfig, compilerOptions?: ts.CompilerOptions, ignorePaths?: string[],
6
+ /**
7
+ * pass in cached metadata returned in a previous step to speed things up
8
+ */
9
+ metadata?: Tsoa.Metadata, defaultNumberType?: Config["defaultNumberType"]) => Promise<Tsoa.Metadata>;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.generateSpec = exports.getSwaggerOutputPath = void 0;
37
+ const YAML = __importStar(require("yaml"));
38
+ const metadataGenerator_1 = require("../metadataGeneration/metadataGenerator");
39
+ const specGenerator2_1 = require("../swagger/specGenerator2");
40
+ const specGenerator3_1 = require("../swagger/specGenerator3");
41
+ const specGenerator31_1 = require("../swagger/specGenerator31");
42
+ const fs_1 = require("../utils/fs");
43
+ const getSwaggerOutputPath = (swaggerConfig) => {
44
+ const ext = swaggerConfig.yaml ? 'yaml' : 'json';
45
+ const specFileBaseName = swaggerConfig.specFileBaseName || 'swagger';
46
+ return `${swaggerConfig.outputDirectory}/${specFileBaseName}.${ext}`;
47
+ };
48
+ exports.getSwaggerOutputPath = getSwaggerOutputPath;
49
+ const generateSpec = async (swaggerConfig, compilerOptions, ignorePaths,
50
+ /**
51
+ * pass in cached metadata returned in a previous step to speed things up
52
+ */
53
+ metadata, defaultNumberType) => {
54
+ if (!metadata) {
55
+ metadata = new metadataGenerator_1.MetadataGenerator(swaggerConfig.entryFile, compilerOptions, ignorePaths, swaggerConfig.controllerPathGlobs, swaggerConfig.rootSecurity, defaultNumberType).Generate();
56
+ }
57
+ let spec;
58
+ switch (swaggerConfig.specVersion) {
59
+ case 2:
60
+ spec = new specGenerator2_1.SpecGenerator2(metadata, swaggerConfig).GetSpec();
61
+ break;
62
+ case 3:
63
+ spec = new specGenerator3_1.SpecGenerator3(metadata, swaggerConfig).GetSpec();
64
+ break;
65
+ case 3.1:
66
+ default:
67
+ spec = new specGenerator31_1.SpecGenerator31(metadata, swaggerConfig).GetSpec();
68
+ }
69
+ await (0, fs_1.fsMkDir)(swaggerConfig.outputDirectory, { recursive: true });
70
+ let data = JSON.stringify(spec, null, '\t');
71
+ if (swaggerConfig.yaml) {
72
+ data = YAML.stringify(JSON.parse(data));
73
+ }
74
+ const outputPath = (0, exports.getSwaggerOutputPath)(swaggerConfig);
75
+ await (0, fs_1.fsWriteFile)(outputPath, data, { encoding: 'utf8' });
76
+ return metadata;
77
+ };
78
+ exports.generateSpec = generateSpec;
79
+ //# sourceMappingURL=generate-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-spec.js","sourceRoot":"","sources":["../../src/module/generate-spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA4B;AAE5B,+EAA2E;AAE3E,8DAA0D;AAC1D,8DAA0D;AAC1D,gEAA4D;AAC5D,oCAAkD;AAE3C,MAAM,oBAAoB,GAAG,CAAC,aAAiC,EAAE,EAAE;IACxE,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;IAChD,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,IAAI,SAAS,CAAA;IAEpE,OAAO,GAAG,aAAa,CAAC,eAAe,IAAI,gBAAgB,IAAI,GAAG,EAAE,CAAA;AACtE,CAAC,CAAA;AALY,QAAA,oBAAoB,wBAKhC;AAEM,MAAM,YAAY,GAAG,KAAK,EAC/B,aAAiC,EACjC,eAAoC,EACpC,WAAsB;AACtB;;GAEG;AACH,QAAwB,EACxB,iBAA+C,EAC/C,EAAE;IACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,IAAI,qCAAiB,CAAC,aAAa,CAAC,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,aAAa,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAA;IACtL,CAAC;IAED,IAAI,IAAkB,CAAA;IAEtB,QAAQ,aAAa,CAAC,WAAW,EAAE,CAAC;QAClC,KAAK,CAAC;YACJ,IAAI,GAAG,IAAI,+BAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,OAAO,EAAE,CAAA;YAC5D,MAAK;QACP,KAAK,CAAC;YACJ,IAAI,GAAG,IAAI,+BAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,OAAO,EAAE,CAAA;YAC5D,MAAK;QACP,KAAK,GAAG,CAAC;QACT;YACE,IAAI,GAAG,IAAI,iCAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,OAAO,EAAE,CAAA;IACjE,CAAC;IAED,MAAM,IAAA,YAAO,EAAC,aAAa,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEjE,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3C,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,4BAAoB,EAAC,aAAa,CAAC,CAAA;IACtD,MAAM,IAAA,gBAAW,EAAC,UAAU,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAEzD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAvCY,QAAA,YAAY,gBAuCxB"}
@@ -0,0 +1,12 @@
1
+ import { ExtendedRoutesConfig } from '../cli';
2
+ import { Tsoa } from '@tsoa-next/runtime';
3
+ import { AbstractRouteGenerator } from './routeGenerator';
4
+ export declare class DefaultRouteGenerator extends AbstractRouteGenerator<ExtendedRoutesConfig> {
5
+ pathTransformerFn: (path: string) => string;
6
+ template: string;
7
+ constructor(metadata: Tsoa.Metadata, options: ExtendedRoutesConfig);
8
+ GenerateCustomRoutes(): Promise<void>;
9
+ GenerateRoutes(middlewareTemplate: string): Promise<void>;
10
+ protected pathTransformer(path: string): string;
11
+ buildContent(middlewareTemplate: string): string;
12
+ }
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.DefaultRouteGenerator = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const handlebars = __importStar(require("handlebars"));
39
+ const path = __importStar(require("path"));
40
+ const runtime_1 = require("@tsoa-next/runtime");
41
+ const fs_1 = require("../utils/fs");
42
+ const pathUtils_1 = require("../utils/pathUtils");
43
+ const routeGenerator_1 = require("./routeGenerator");
44
+ class DefaultRouteGenerator extends routeGenerator_1.AbstractRouteGenerator {
45
+ pathTransformerFn;
46
+ template;
47
+ constructor(metadata, options) {
48
+ super(metadata, options);
49
+ this.pathTransformerFn = pathUtils_1.convertBracesPathParams;
50
+ switch (options.middleware) {
51
+ case 'hapi':
52
+ this.template = path.join(__dirname, '..', 'routeGeneration/templates/hapi.hbs');
53
+ this.pathTransformerFn = (path) => path;
54
+ break;
55
+ case 'koa':
56
+ this.template = path.join(__dirname, '..', 'routeGeneration/templates/koa.hbs');
57
+ break;
58
+ case 'express':
59
+ default:
60
+ this.template = path.join(__dirname, '..', 'routeGeneration/templates/express.hbs');
61
+ }
62
+ if (options.middlewareTemplate) {
63
+ this.template = options.middlewareTemplate;
64
+ }
65
+ }
66
+ async GenerateCustomRoutes() {
67
+ const data = await (0, fs_1.fsReadFile)(path.join(this.template));
68
+ const file = data.toString();
69
+ return await this.GenerateRoutes(file);
70
+ }
71
+ async GenerateRoutes(middlewareTemplate) {
72
+ const allowedExtensions = this.options.esm ? ['.ts', '.mts', '.cts'] : ['.ts'];
73
+ if (!fs.lstatSync(this.options.routesDir).isDirectory()) {
74
+ throw new Error(`routesDir should be a directory`);
75
+ }
76
+ else if (this.options.routesFileName !== undefined) {
77
+ const ext = path.extname(this.options.routesFileName);
78
+ if (!allowedExtensions.includes(ext)) {
79
+ throw new Error(`routesFileName should be a valid typescript file.`);
80
+ }
81
+ }
82
+ const fileName = `${this.options.routesDir}/${this.options.routesFileName || 'routes.ts'}`;
83
+ const content = this.buildContent(middlewareTemplate);
84
+ if (await this.shouldWriteFile(fileName, content)) {
85
+ await (0, fs_1.fsWriteFile)(fileName, content);
86
+ }
87
+ }
88
+ pathTransformer(path) {
89
+ return this.pathTransformerFn(path);
90
+ }
91
+ buildContent(middlewareTemplate) {
92
+ handlebars.registerHelper('json', (context) => {
93
+ return JSON.stringify(context);
94
+ });
95
+ const additionalPropsHelper = (additionalProperties) => {
96
+ if (additionalProperties) {
97
+ // Then the model for this type explicitly allows additional properties and thus we should assign that
98
+ return JSON.stringify(additionalProperties);
99
+ }
100
+ else if (this.options.noImplicitAdditionalProperties === 'silently-remove-extras') {
101
+ return JSON.stringify(false);
102
+ }
103
+ else if (this.options.noImplicitAdditionalProperties === 'throw-on-extras') {
104
+ return JSON.stringify(false);
105
+ }
106
+ else if (this.options.noImplicitAdditionalProperties === 'ignore') {
107
+ return JSON.stringify(true);
108
+ }
109
+ else {
110
+ return (0, runtime_1.assertNever)(this.options.noImplicitAdditionalProperties);
111
+ }
112
+ };
113
+ handlebars.registerHelper('additionalPropsHelper', additionalPropsHelper);
114
+ const routesTemplate = handlebars.compile(middlewareTemplate, { noEscape: true });
115
+ return routesTemplate(this.buildContext());
116
+ }
117
+ }
118
+ exports.DefaultRouteGenerator = DefaultRouteGenerator;
119
+ //# sourceMappingURL=defaultRouteGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultRouteGenerator.js","sourceRoot":"","sources":["../../src/routeGeneration/defaultRouteGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { ExtendedRoutesConfig } from '../cli';
2
+ import { Tsoa, TsoaRoute } from '@tsoa-next/runtime';
3
+ export declare abstract class AbstractRouteGenerator<Config extends ExtendedRoutesConfig> {
4
+ protected readonly metadata: Tsoa.Metadata;
5
+ protected readonly options: Config;
6
+ constructor(metadata: Tsoa.Metadata, options: Config);
7
+ /**
8
+ * This is the entrypoint for a generator to create a custom set of routes
9
+ */
10
+ abstract GenerateCustomRoutes(): Promise<void>;
11
+ buildModels(): TsoaRoute.Models;
12
+ protected pathTransformer(path: string): string;
13
+ protected buildContext(): {
14
+ authenticationModule: string | undefined;
15
+ basePath: string;
16
+ canImportByAlias: boolean;
17
+ controllers: {
18
+ actions: {
19
+ fullPath: string;
20
+ method: string;
21
+ name: string;
22
+ parameters: {
23
+ [name: string]: TsoaRoute.ParameterSchema;
24
+ };
25
+ path: string;
26
+ uploadFile: boolean;
27
+ uploadFileName: {
28
+ name: string;
29
+ maxCount: number | undefined;
30
+ multiple: boolean;
31
+ }[];
32
+ security: Tsoa.Security[];
33
+ successStatus: string | number;
34
+ }[];
35
+ modulePath: string;
36
+ name: string;
37
+ path: string;
38
+ }[];
39
+ environment: NodeJS.ProcessEnv;
40
+ iocModule: string | undefined;
41
+ minimalSwaggerConfig: {
42
+ noImplicitAdditionalProperties: "ignore" | "throw-on-extras" | "silently-remove-extras";
43
+ bodyCoercion: boolean;
44
+ };
45
+ models: TsoaRoute.Models;
46
+ useFileUploads: boolean;
47
+ multerOpts: Config["multerOpts"];
48
+ useSecurity: boolean;
49
+ esm: boolean | undefined;
50
+ };
51
+ protected getRelativeImportPath(fileLocation: string): string;
52
+ protected buildPropertySchema(source: Tsoa.Property): TsoaRoute.PropertySchema;
53
+ protected buildParameterSchema(source: Tsoa.Parameter): TsoaRoute.ParameterSchema;
54
+ protected buildProperty(type: Tsoa.Type): TsoaRoute.PropertySchema;
55
+ protected shouldWriteFile(fileName: string, content: string): Promise<boolean>;
56
+ }