@tsoa-next/cli 8.0.3 → 8.0.4-dev.53.2c0aa7c6

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.
package/dist/runCLI.js CHANGED
@@ -34,13 +34,23 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.runCLI = runCLI;
37
- const api_1 = require("./api");
37
+ const node_async_hooks_1 = require("node:async_hooks");
38
+ const node_os_1 = require("node:os");
39
+ const node_util_1 = require("node:util");
40
+ const discovery_1 = require("./discovery");
41
+ const outputPrefixStorage = new node_async_hooks_1.AsyncLocalStorage();
38
42
  const configurationArgs = {
39
43
  alias: 'c',
40
44
  describe: 'tsoa configuration file; default is tsoa.json in the working directory',
41
45
  required: false,
42
46
  string: true,
43
47
  };
48
+ const discoverArgs = {
49
+ describe: 'discover tsoa config files using a path or glob before running the command',
50
+ required: false,
51
+ requiresArg: true,
52
+ string: true,
53
+ };
44
54
  const hostArgs = {
45
55
  describe: 'API host',
46
56
  required: false,
@@ -64,6 +74,7 @@ const jsonArgs = {
64
74
  const configCommandArgs = {
65
75
  basePath: basePathArgs,
66
76
  configuration: configurationArgs,
77
+ discover: discoverArgs,
67
78
  };
68
79
  const specCommandArgs = {
69
80
  ...configCommandArgs,
@@ -94,6 +105,142 @@ const getHideBin = (moduleExports) => {
94
105
  }
95
106
  throw new TypeError('Unable to load yargs/helpers');
96
107
  };
108
+ const loadCLIAPI = async () => {
109
+ return await Promise.resolve().then(() => __importStar(require('./api')));
110
+ };
111
+ const renderPrefixedOutput = (prefix, args) => {
112
+ const rendered = (0, node_util_1.format)(...args);
113
+ return rendered
114
+ .split('\n')
115
+ .map(line => `${prefix}${line}`)
116
+ .join('\n');
117
+ };
118
+ const withPatchedConsole = async (action) => {
119
+ const originalConsoleError = console.error;
120
+ const originalConsoleLog = console.log;
121
+ const originalConsoleWarn = console.warn;
122
+ console.log = (...args) => {
123
+ const prefix = outputPrefixStorage.getStore();
124
+ if (!prefix) {
125
+ originalConsoleLog(...args);
126
+ return;
127
+ }
128
+ originalConsoleLog(renderPrefixedOutput(prefix, args));
129
+ };
130
+ console.warn = (...args) => {
131
+ const prefix = outputPrefixStorage.getStore();
132
+ if (!prefix) {
133
+ originalConsoleWarn(...args);
134
+ return;
135
+ }
136
+ originalConsoleWarn(renderPrefixedOutput(prefix, args));
137
+ };
138
+ console.error = (...args) => {
139
+ const prefix = outputPrefixStorage.getStore();
140
+ if (!prefix) {
141
+ originalConsoleError(...args);
142
+ return;
143
+ }
144
+ originalConsoleError(renderPrefixedOutput(prefix, args));
145
+ };
146
+ try {
147
+ return await action();
148
+ }
149
+ finally {
150
+ console.error = originalConsoleError;
151
+ console.log = originalConsoleLog;
152
+ console.warn = originalConsoleWarn;
153
+ }
154
+ };
155
+ const ensureExclusiveConfigurationModes = (configuration, discover) => {
156
+ if (configuration !== undefined && discover !== undefined) {
157
+ throw new Error('The --configuration and --discover options cannot be used together.');
158
+ }
159
+ };
160
+ const getDiscoveryInputDisplay = (input) => input ?? (0, discovery_1.getDefaultDiscoverRoot)();
161
+ const ensureDiscoveredConfigs = async (input) => {
162
+ const discoveryResult = await (0, discovery_1.discoverConfigs)(input);
163
+ if (discoveryResult.matches.length === 0) {
164
+ throw new Error(`No tsoa config files found for '${getDiscoveryInputDisplay(input)}'.`);
165
+ }
166
+ return discoveryResult.matches;
167
+ };
168
+ const runTasksWithConcurrency = async (limit, tasks) => {
169
+ const results = new Array(tasks.length);
170
+ let nextTaskIndex = 0;
171
+ const workers = Array.from({ length: Math.min(limit, tasks.length) }, async () => {
172
+ while (nextTaskIndex < tasks.length) {
173
+ const currentTaskIndex = nextTaskIndex;
174
+ nextTaskIndex += 1;
175
+ try {
176
+ const value = await tasks[currentTaskIndex]();
177
+ results[currentTaskIndex] = {
178
+ status: 'fulfilled',
179
+ value,
180
+ };
181
+ }
182
+ catch (error) {
183
+ results[currentTaskIndex] = {
184
+ status: 'rejected',
185
+ reason: error,
186
+ };
187
+ }
188
+ }
189
+ });
190
+ await Promise.all(workers);
191
+ return results;
192
+ };
193
+ const formatFailureReason = (reason) => {
194
+ if (reason instanceof Error) {
195
+ return reason.message;
196
+ }
197
+ return String(reason);
198
+ };
199
+ const formatDiscoveredCommandPrefix = (displayPath) => `[${displayPath}] `;
200
+ const executeDiscoveredTask = async (commandName, api, args, configurationPath, displayPath, execute) => {
201
+ return await outputPrefixStorage.run(formatDiscoveredCommandPrefix(displayPath), async () => {
202
+ console.log(`Starting ${commandName}`);
203
+ const result = await execute(api, configurationPath, args);
204
+ console.log(`Finished ${commandName}`);
205
+ return result;
206
+ });
207
+ };
208
+ const createDiscoveredCommandTask = (commandName, api, args, discoveredConfig, execute) => {
209
+ return async () => await executeDiscoveredTask(commandName, api, args, discoveredConfig.absolutePath, discoveredConfig.displayPath, execute);
210
+ };
211
+ const runDiscoveredCommand = async (commandName, args, execute) => {
212
+ ensureExclusiveConfigurationModes(args.configuration, args.discover);
213
+ if (!args.discover) {
214
+ const api = await loadCLIAPI();
215
+ return await execute(api, args.configuration, args);
216
+ }
217
+ const discoveredConfigs = await ensureDiscoveredConfigs(args.discover);
218
+ const api = await loadCLIAPI();
219
+ const concurrency = Math.min(discoveredConfigs.length, (0, node_os_1.availableParallelism)());
220
+ const results = await withPatchedConsole(async () => {
221
+ return await runTasksWithConcurrency(concurrency, discoveredConfigs.map(discoveredConfig => createDiscoveredCommandTask(commandName, api, args, discoveredConfig, execute)));
222
+ });
223
+ const failures = results.flatMap((result, index) => {
224
+ if (result?.status !== 'rejected') {
225
+ return [];
226
+ }
227
+ const discoveredConfig = discoveredConfigs[index];
228
+ if (!discoveredConfig) {
229
+ return [];
230
+ }
231
+ return [`- ${discoveredConfig.displayPath}: ${formatFailureReason(result.reason)}`];
232
+ });
233
+ if (failures.length > 0) {
234
+ throw new Error(`Failed ${commandName} for discovered config files:\n${failures.join('\n')}`);
235
+ }
236
+ return results;
237
+ };
238
+ const runDiscoverCommand = async (pathOrGlob) => {
239
+ const discoveryResult = await ensureDiscoveredConfigs(pathOrGlob);
240
+ for (const discoveredConfig of discoveryResult) {
241
+ process.stdout.write(`${discoveredConfig.displayPath}\n`);
242
+ }
243
+ };
97
244
  async function runCLI() {
98
245
  const [yargsModule, yargsHelpers] = await Promise.all([Promise.resolve().then(() => __importStar(require('yargs'))), Promise.resolve().then(() => __importStar(require('yargs/helpers')))]);
99
246
  const yargsFactory = getYargsFactory(yargsModule);
@@ -102,28 +249,41 @@ async function runCLI() {
102
249
  return cli
103
250
  .scriptName('tsoa')
104
251
  .usage('Usage: $0 <command> [options]')
252
+ .command('discover [pathOrGlob]', 'Discover tsoa config files beneath a path or glob', command => command.positional('pathOrGlob', {
253
+ describe: 'Path or glob to search. Defaults to the current working directory.',
254
+ string: true,
255
+ type: 'string',
256
+ }), async (args) => {
257
+ await runDiscoverCommand(args.pathOrGlob);
258
+ })
105
259
  .command('spec', 'Generate OpenAPI spec', specCommandArgs, async (args) => {
106
- await (0, api_1.generateSpecFromArgs)({
107
- basePath: args.basePath,
108
- configuration: args.configuration,
109
- host: args.host,
110
- json: args.json,
111
- yaml: args.yaml,
260
+ await runDiscoveredCommand('spec', args, async (api, configurationPath, resolvedArgs) => {
261
+ await api.generateSpecFromArgs({
262
+ basePath: resolvedArgs.basePath,
263
+ configuration: configurationPath,
264
+ host: resolvedArgs.host,
265
+ json: resolvedArgs.json,
266
+ yaml: resolvedArgs.yaml,
267
+ });
112
268
  });
113
269
  })
114
270
  .command('routes', 'Generate routes', configCommandArgs, async (args) => {
115
- await (0, api_1.generateRoutesFromArgs)({
116
- basePath: args.basePath,
117
- configuration: args.configuration,
271
+ await runDiscoveredCommand('routes', args, async (api, configurationPath, resolvedArgs) => {
272
+ await api.generateRoutesFromArgs({
273
+ basePath: resolvedArgs.basePath,
274
+ configuration: configurationPath,
275
+ });
118
276
  });
119
277
  })
120
278
  .command('spec-and-routes', 'Generate OpenAPI spec and routes', specCommandArgs, async (args) => {
121
- await (0, api_1.generateSpecAndRoutes)({
122
- basePath: args.basePath,
123
- configuration: args.configuration,
124
- host: args.host,
125
- json: args.json,
126
- yaml: args.yaml,
279
+ await runDiscoveredCommand('spec-and-routes', args, async (api, configurationPath, resolvedArgs) => {
280
+ await api.generateSpecAndRoutes({
281
+ basePath: resolvedArgs.basePath,
282
+ configuration: configurationPath,
283
+ host: resolvedArgs.host,
284
+ json: resolvedArgs.json,
285
+ yaml: resolvedArgs.yaml,
286
+ });
127
287
  });
128
288
  })
129
289
  .demandCommand(1, 1, 'Must provide a valid command.')
@@ -1 +1 @@
1
- {"version":3,"file":"runCLI.js","sourceRoot":"","sources":["../src/runCLI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runCLI.js","sourceRoot":"","sources":["../src/runCLI.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqSA,wBAoEC;AAzWD,uDAAoD;AACpD,qCAA8C;AAC9C,yCAAkC;AAClC,2CAAqE;AAMrE,MAAM,mBAAmB,GAAG,IAAI,oCAAiB,EAAsB,CAAA;AAEvE,MAAM,iBAAiB,GAAG;IACxB,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,wEAAwE;IAClF,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,IAAI;CACK,CAAA;AAEnB,MAAM,YAAY,GAAG;IACnB,QAAQ,EAAE,4EAA4E;IACtF,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,IAAI;CACK,CAAA;AAEnB,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,IAAI;CACK,CAAA;AAEnB,MAAM,YAAY,GAAG;IACnB,QAAQ,EAAE,eAAe;IACzB,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,IAAI;CACK,CAAA;AAEnB,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,0BAA0B;IACpC,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,IAAI;CACI,CAAA;AAEnB,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,0BAA0B;IACpC,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,IAAI;CACI,CAAA;AAEnB,MAAM,iBAAiB,GAAG;IACxB,QAAQ,EAAE,YAAY;IACtB,aAAa,EAAE,iBAAiB;IAChC,QAAQ,EAAE,YAAY;CACvB,CAAA;AAED,MAAM,eAAe,GAAG;IACtB,GAAG,iBAAiB;IACpB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;CACf,CAAA;AAaD,MAAM,cAAc,GAAG,CAAC,KAAc,EAAyB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAA;AAE7F,MAAM,eAAe,GAAG,CAAC,aAAsB,EAAgB,EAAE;IAC/D,IAAI,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,IAAI,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;QAC9F,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAA;QAE3C,IAAI,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,OAAO,aAAa,CAAA;QACtB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,SAAS,CAAC,sBAAsB,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,KAAc,EAAoB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAA;AAEnF,MAAM,UAAU,GAAG,CAAC,aAAsB,EAAW,EAAE;IACrD,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,IAAI,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;QAC9F,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAA;QAErC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,OAAO,OAAO,CAAA;QAChB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,KAAK,IAAqB,EAAE;IAC7C,OAAO,wDAAa,OAAO,GAAC,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAE,IAAe,EAAU,EAAE;IACvE,MAAM,QAAQ,GAAG,IAAA,kBAAM,EAAC,GAAG,IAAI,CAAC,CAAA;IAChC,OAAO,QAAQ;SACZ,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;SAC/B,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,KAAK,EAAK,MAAwB,EAAc,EAAE;IAC3E,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAA;IACtC,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAA;IAExC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE,CAAA;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,kBAAkB,CAAC,GAAG,IAAI,CAAC,CAAA;YAC3B,OAAM;QACR,CAAC;QAED,kBAAkB,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IACxD,CAAC,CAAA;IAED,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE,CAAA;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAA;YAC5B,OAAM;QACR,CAAC;QAED,mBAAmB,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IACzD,CAAC,CAAA;IAED,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE,CAAA;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAA;YAC7B,OAAM;QACR,CAAC;QAED,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAA;IAED,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,EAAE,CAAA;IACvB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAA;QACpC,OAAO,CAAC,GAAG,GAAG,kBAAkB,CAAA;QAChC,OAAO,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACpC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,iCAAiC,GAAG,CAAC,aAA+D,EAAE,QAA4B,EAAE,EAAE;IAC1I,IAAI,aAAa,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;IACxF,CAAC;AACH,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,KAAK,IAAI,IAAA,kCAAsB,GAAE,CAAA;AAE9F,MAAM,uBAAuB,GAAG,KAAK,EAAE,KAAc,EAAE,EAAE;IACvD,MAAM,eAAe,GAAG,MAAM,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAA;IACpD,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,mCAAmC,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzF,CAAC;IAED,OAAO,eAAe,CAAC,OAAO,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,KAAK,EAAK,KAAa,EAAE,KAA8B,EAA2C,EAAE;IAClI,MAAM,OAAO,GAAG,IAAI,KAAK,CAA0B,KAAK,CAAC,MAAM,CAAC,CAAA;IAChE,IAAI,aAAa,GAAG,CAAC,CAAA;IAErB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QAC/E,OAAO,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,gBAAgB,GAAG,aAAa,CAAA;YACtC,aAAa,IAAI,CAAC,CAAA;YAElB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAA;gBAC7C,OAAO,CAAC,gBAAgB,CAAC,GAAG;oBAC1B,MAAM,EAAE,WAAW;oBACnB,KAAK;iBACN,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,gBAAgB,CAAC,GAAG;oBAC1B,MAAM,EAAE,UAAU;oBAClB,MAAM,EAAE,KAAK;iBACd,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1B,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,MAAe,EAAU,EAAE;IACtD,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,6BAA6B,GAAG,CAAC,WAAmB,EAAU,EAAE,CAAC,IAAI,WAAW,IAAI,CAAA;AAE1F,MAAM,qBAAqB,GAAG,KAAK,EACjC,WAAmB,EACnB,GAAW,EACX,IAAgB,EAChB,iBAA0D,EAC1D,WAAmB,EACnB,OAAgI,EAChI,EAAE;IACF,OAAO,MAAM,mBAAmB,CAAC,GAAG,CAAC,6BAA6B,CAAC,WAAW,CAAC,EAAE,KAAK,IAAI,EAAE;QAC1F,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,EAAE,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAA;QAC1D,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,EAAE,CAAC,CAAA;QACtC,OAAO,MAAM,CAAA;IACf,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,CAClC,WAAmB,EACnB,GAAW,EACX,IAAgB,EAChB,gBAA6E,EAC7E,OAAgI,EAChI,EAAE;IACF,OAAO,KAAK,IAAI,EAAE,CAAC,MAAM,qBAAqB,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;AAC9I,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,KAAK,EAChC,WAAmB,EACnB,IAAgB,EAChB,OAAgI,EAChI,EAAE;IACF,iCAAiC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEpE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAA;QAC9B,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtE,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAA;IAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAA,8BAAoB,GAAE,CAAC,CAAA;IAE9E,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,KAAK,IAAI,EAAE;QAClD,OAAO,MAAM,uBAAuB,CAClC,WAAW,EACX,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,2BAA2B,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAC1H,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACjD,IAAI,MAAM,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,OAAO,CAAC,KAAK,gBAAgB,CAAC,WAAW,KAAK,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACrF,CAAC,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,UAAU,WAAW,kCAAkC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/F,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,KAAK,EAAE,UAAmB,EAAE,EAAE;IACvD,MAAM,eAAe,GAAG,MAAM,uBAAuB,CAAC,UAAU,CAAC,CAAA;IAEjE,KAAK,MAAM,gBAAgB,IAAI,eAAe,EAAE,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,WAAW,IAAI,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC,CAAA;AAEM,KAAK,UAAU,MAAM;IAC1B,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,mDAAQ,OAAO,uDAAU,eAAe,IAAE,CAAC,CAAA;IACjG,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IACxC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAE/C,OAAO,GAAG;SACP,UAAU,CAAC,MAAM,CAAC;SAClB,KAAK,CAAC,+BAA+B,CAAC;SACtC,OAAO,CACN,uBAAuB,EACvB,mDAAmD,EACnD,OAAO,CAAC,EAAE,CACR,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE;QAC/B,QAAQ,EAAE,oEAAoE;QAC9E,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,QAAQ;KACf,CAAC,EACJ,KAAK,EAAE,IAA8B,EAAE,EAAE;QACvC,MAAM,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC3C,CAAC,CACF;SACA,OAAO,CAAC,MAAM,EAAE,uBAAuB,EAAE,eAAe,EAAE,KAAK,EAAE,IAA0B,EAAE,EAAE;QAC9F,MAAM,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAE;YACtF,MAAM,GAAG,CAAC,oBAAoB,CAAC;gBAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,aAAa,EAAE,iBAAiB;gBAChC,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,IAAI,EAAE,YAAY,CAAC,IAAI;aACxB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC;SACD,OAAO,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAA4B,EAAE,EAAE;QAC9F,MAAM,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAE;YACxF,MAAM,GAAG,CAAC,sBAAsB,CAAC;gBAC/B,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,aAAa,EAAE,iBAAiB;aACjC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC;SACD,OAAO,CAAC,iBAAiB,EAAE,kCAAkC,EAAE,eAAe,EAAE,KAAK,EAAE,IAA0B,EAAE,EAAE;QACpH,MAAM,oBAAoB,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAE;YACjG,MAAM,GAAG,CAAC,qBAAqB,CAAC;gBAC9B,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,aAAa,EAAE,iBAAiB;gBAChC,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,IAAI,EAAE,YAAY,CAAC,IAAI;aACxB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC;SACD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,+BAA+B,CAAC;SACpD,IAAI,CAAC,MAAM,CAAC;SACZ,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;SAClB,WAAW,CAAC,KAAK,CAAC;SAClB,IAAI,CAAC,CAAC,OAAe,EAAE,KAAwB,EAAE,EAAE;QAClD,IAAI,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC;YACtB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC;QAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,KAAK,CAAA;QACb,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC,CAAC;SACD,UAAU,EAAE,CAAA;AACjB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Tsoa } from '@tsoa-next/runtime';
2
2
  import { NodeArray, TypeNode } from 'typescript';
3
3
  import { MetadataGenerator } from '../metadataGeneration/metadataGenerator';
4
- export declare function getHeaderType(typeArgumentNodes: NodeArray<TypeNode> | undefined, index: number, metadataGenerator: MetadataGenerator): Tsoa.HeaderType | undefined;
4
+ import { Context } from '../metadataGeneration/typeResolver';
5
+ export declare function getHeaderType(typeArgumentNodes: NodeArray<TypeNode> | undefined, index: number, metadataGenerator: MetadataGenerator, context?: Context): Tsoa.HeaderType | undefined;
5
6
  export declare function isSupportedHeaderDataType(parameterType: Tsoa.Type): parameterType is Tsoa.HeaderType;
@@ -4,11 +4,11 @@ exports.getHeaderType = getHeaderType;
4
4
  exports.isSupportedHeaderDataType = isSupportedHeaderDataType;
5
5
  const exceptions_1 = require("../metadataGeneration/exceptions");
6
6
  const typeResolver_1 = require("../metadataGeneration/typeResolver");
7
- function getHeaderType(typeArgumentNodes, index, metadataGenerator) {
7
+ function getHeaderType(typeArgumentNodes, index, metadataGenerator, context = {}) {
8
8
  if (!typeArgumentNodes?.[index]) {
9
9
  return undefined;
10
10
  }
11
- const candidate = new typeResolver_1.TypeResolver(typeArgumentNodes[index], metadataGenerator).resolve();
11
+ const candidate = new typeResolver_1.TypeResolver(typeArgumentNodes[index], metadataGenerator, undefined, context).resolve();
12
12
  if (candidate && isSupportedHeaderDataType(candidate)) {
13
13
  return candidate;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"headerTypeHelpers.js","sourceRoot":"","sources":["../../src/utils/headerTypeHelpers.ts"],"names":[],"mappings":";;AAMA,sCAcC;AAED,8DAGC;AAvBD,iEAAwE;AAExE,qEAAiE;AAEjE,SAAgB,aAAa,CAAC,iBAAkD,EAAE,KAAa,EAAE,iBAAoC;IACnI,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,2BAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAA;IAEzF,IAAI,SAAS,IAAI,yBAAyB,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,IAAI,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,kCAAqB,CAAC,+BAA+B,iBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAA;IAChI,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAgB,yBAAyB,CAAC,aAAwB;IAChE,MAAM,sBAAsB,GAA6B,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAA;IAC7F,OAAO,sBAAsB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AAChE,CAAC"}
1
+ {"version":3,"file":"headerTypeHelpers.js","sourceRoot":"","sources":["../../src/utils/headerTypeHelpers.ts"],"names":[],"mappings":";;AAMA,sCAcC;AAED,8DAGC;AAvBD,iEAAwE;AAExE,qEAA0E;AAE1E,SAAgB,aAAa,CAAC,iBAAkD,EAAE,KAAa,EAAE,iBAAoC,EAAE,UAAmB,EAAE;IAC1J,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,2BAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;IAE7G,IAAI,SAAS,IAAI,yBAAyB,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,IAAI,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,kCAAqB,CAAC,+BAA+B,iBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAA;IAChI,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAgB,yBAAyB,CAAC,aAAwB;IAChE,MAAM,sBAAsB,GAA6B,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAA;IAC7F,OAAO,sBAAsB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AAChE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsoa-next/cli",
3
- "version": "8.0.3",
3
+ "version": "8.0.4-dev.53.2c0aa7c6",
4
4
  "description": "Build swagger-compliant REST APIs using TypeScript and Node",
5
5
  "main": "./dist/index.js",
6
6
  "typings": "./dist/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  "author": "Vanna DiCatania <vanna@dicatania.me> (http://www.dicatania.me)",
34
34
  "license": "MIT",
35
35
  "dependencies": {
36
- "@tsoa-next/runtime": "8.0.3",
36
+ "@tsoa-next/runtime": "8.0.4-dev.53.2c0aa7c6",
37
37
  "@types/multer": "^2.1.0",
38
38
  "fs-extra": "^11.3.4",
39
39
  "glob": "^13.0.6",