@spinajs/http-swagger 2.0.490 → 2.0.494

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.
@@ -8,6 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { AsyncService, Autoinject, DI, LazyInject, Singleton } from '@spinajs/di';
11
+ import { InvalidArgument } from '@spinajs/exceptions';
11
12
  import { Config } from '@spinajs/configuration';
12
13
  import { Controllers } from '@spinajs/http';
13
14
  import { Logger, Log } from '@spinajs/log';
@@ -78,15 +79,29 @@ let SwaggerService = class SwaggerService extends AsyncService {
78
79
  };
79
80
  const builder = await DI.resolve(OpenApiBuilder, [config]);
80
81
  const controllers = await this.ControllersService.Controllers;
82
+ // Every controller is attempted before anything is thrown, so one run reports EVERY
83
+ // offender. Aborting on the first one hides the rest: the builder already stops at a
84
+ // controller's first bad method, and when these failures were only warned about, seven
85
+ // log lines stood for thirteen broken arguments - and the twenty-one operations of the
86
+ // controllers that failed silently vanished from a spec that still answered 200.
87
+ const failures = [];
81
88
  for (const controller of controllers) {
82
89
  try {
83
90
  const docCache = await this.DocCache.getCache(controller);
84
91
  builder.addController(controller, docCache);
85
92
  }
86
93
  catch (err) {
87
- this.Log.warn(`Failed to process controller ${controller.name}: ${err}`);
94
+ failures.push(` - ${controller.name}: ${err?.message ?? err}`);
88
95
  }
89
96
  }
97
+ if (failures.length > 0) {
98
+ // A controller that cannot be documented is a controller that is wrong - it is fixed,
99
+ // not worked around. Omitting it would publish a spec that looks complete and is not,
100
+ // which is precisely the failure this replaces.
101
+ const message = `Cannot build the OpenAPI spec: ${failures.length} controller(s) could not be documented.\n${failures.join('\n')}`;
102
+ this.Log.error(message);
103
+ throw new InvalidArgument(message);
104
+ }
90
105
  this._spec = builder.build();
91
106
  return this._spec;
92
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"swagger-service.js","sourceRoot":"","sources":["../../src/swagger-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swagger-service.js","sourceRoot":"","sources":["../../src/swagger-service.ts"],"names":[],"mappings":"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"}