@trojs/openapi-server 1.7.5 → 1.9.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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@trojs/openapi-server",
3
3
  "description": "OpenAPI Server",
4
- "version": "1.7.5",
4
+ "version": "1.9.0",
5
5
  "author": {
6
6
  "name": "Pieter Wigboldus",
7
7
  "url": "https://trojs.org/"
@@ -37,7 +37,7 @@
37
37
  "@eslint/js": "^9.15.0",
38
38
  "@trojs/lint": "^0.2.9",
39
39
  "@types/node": "^22.0.0",
40
- "@types/express-serve-static-core": "^4.17.41",
40
+ "@types/express-serve-static-core": "^5.0.6",
41
41
  "eslint": "^9.15.0",
42
42
  "globals": "^16.0.0",
43
43
  "jscpd": "^4.0.5",
@@ -62,7 +62,7 @@
62
62
  "body-parser": "^2.0.0",
63
63
  "compression": "^1.7.4",
64
64
  "cors": "^2.8.5",
65
- "express": "^4.19.2",
65
+ "express": "^5.1.0",
66
66
  "helmet": "^8.0.0",
67
67
  "openapi-backend": "^5.9.2",
68
68
  "swagger-ui-express": "^5.0.0"
package/src/api.js CHANGED
@@ -22,6 +22,7 @@ import { setupRouter } from './router.js'
22
22
  * @property {boolean=} strictSpecification
23
23
  * @property {boolean=} errorDetails
24
24
  * @property {Logger=} logger
25
+ * @property {Function=} log
25
26
  * @property {object=} meta
26
27
  * @property {SecurityHandler[]=} securityHandlers
27
28
  * @property {Handler=} unauthorizedHandler
@@ -50,6 +51,7 @@ export class Api {
50
51
  strictSpecification,
51
52
  errorDetails,
52
53
  logger,
54
+ log,
53
55
  meta,
54
56
  securityHandlers,
55
57
  unauthorizedHandler,
@@ -65,6 +67,7 @@ export class Api {
65
67
  this.strictSpecification = strictSpecification
66
68
  this.errorDetails = errorDetails || false
67
69
  this.logger = logger || console
70
+ this.log = log || undefined
68
71
  this.meta = meta || {}
69
72
  this.securityHandlers = securityHandlers || []
70
73
  this.unauthorizedHandler = unauthorizedHandler || undefined
@@ -97,6 +100,7 @@ export class Api {
97
100
  strictSpecification: this.strictSpecification,
98
101
  errorDetails: this.errorDetails,
99
102
  logger: this.logger,
103
+ log: this.log,
100
104
  meta: this.meta,
101
105
  securityHandlers: this.securityHandlers,
102
106
  unauthorizedHandler: this.unauthorizedHandler,
@@ -17,10 +17,11 @@ import { parseParams } from './params.js'
17
17
  * @param {Logger=} params.logger
18
18
  * @param {object=} params.meta
19
19
  * @param {boolean=} params.mock
20
+ * @param {Function=} params.log
20
21
  * @returns {Function}
21
22
  */
22
23
  export const makeExpressCallback
23
- = ({ controller, specification, errorDetails, logger, meta, mock }) =>
24
+ = ({ controller, specification, errorDetails, logger, meta, mock, log }) =>
24
25
  /**
25
26
  * Handle controller
26
27
  * @async
@@ -41,8 +42,7 @@ export const makeExpressCallback
41
42
  mock
42
43
  })
43
44
  const url = `${request.protocol}://${request.get('Host')}${request.originalUrl}`
44
-
45
- const responseBody = await controller({
45
+ const feedback = {
46
46
  context,
47
47
  request,
48
48
  response,
@@ -52,7 +52,11 @@ export const makeExpressCallback
52
52
  url,
53
53
  logger,
54
54
  meta
55
- })
55
+ }
56
+ if (log) {
57
+ log(feedback)
58
+ }
59
+ const responseBody = await controller(feedback)
56
60
  logger.debug({
57
61
  url,
58
62
  parameters,
package/src/router.js CHANGED
@@ -24,6 +24,7 @@ import { unauthorized } from './handlers/unauthorized.js'
24
24
  * @param {boolean=} params.strictSpecification
25
25
  * @param {boolean=} params.errorDetails
26
26
  * @param {Logger=} params.logger
27
+ * @param {Function=} params.log
27
28
  * @param {object=} params.meta
28
29
  * @param {SecurityHandler[]=} params.securityHandlers
29
30
  * @param {Handler=} params.unauthorizedHandler
@@ -39,6 +40,7 @@ export const setupRouter = ({
39
40
  strictSpecification,
40
41
  errorDetails,
41
42
  logger,
43
+ log,
42
44
  meta,
43
45
  securityHandlers = [],
44
46
  unauthorizedHandler,
@@ -78,7 +80,8 @@ export const setupRouter = ({
78
80
  errorDetails,
79
81
  logger,
80
82
  meta,
81
- mock
83
+ mock,
84
+ log
82
85
  })
83
86
  )
84
87
  }