@trojs/openapi-server 3.5.1 → 3.6.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 +1 -1
- package/src/api.js +4 -0
- package/src/router.js +11 -4
- package/types/api.d.ts +4 -1
- package/types/api.d.ts.map +1 -1
- package/types/router.d.ts +2 -1
- package/types/router.d.ts.map +1 -1
package/package.json
CHANGED
package/src/api.js
CHANGED
|
@@ -28,6 +28,7 @@ import { setupRouter } from './router.js'
|
|
|
28
28
|
* @property {Handler=} unauthorizedHandler
|
|
29
29
|
* @property {boolean=} swagger
|
|
30
30
|
* @property {boolean=} apiDocs
|
|
31
|
+
* @property {boolean=} validateResponse
|
|
31
32
|
* @property {AjvOpts=} ajvOptions
|
|
32
33
|
* @property {AjvCustomizer=} customizeAjv
|
|
33
34
|
* @property {any[]=} middleware
|
|
@@ -57,6 +58,7 @@ export class Api {
|
|
|
57
58
|
unauthorizedHandler,
|
|
58
59
|
swagger,
|
|
59
60
|
apiDocs,
|
|
61
|
+
validateResponse,
|
|
60
62
|
ajvOptions,
|
|
61
63
|
customizeAjv,
|
|
62
64
|
middleware = []
|
|
@@ -73,6 +75,7 @@ export class Api {
|
|
|
73
75
|
this.unauthorizedHandler = unauthorizedHandler || undefined
|
|
74
76
|
this.swagger = swagger ?? true
|
|
75
77
|
this.apiDocs = apiDocs ?? true
|
|
78
|
+
this.validateResponse = validateResponse ?? true
|
|
76
79
|
this.ajvOptions = ajvOptions ?? { allErrors: false }
|
|
77
80
|
this.customizeAjv = customizeAjv
|
|
78
81
|
this.middleware = middleware
|
|
@@ -120,6 +123,7 @@ export class Api {
|
|
|
120
123
|
meta: this.meta,
|
|
121
124
|
securityHandlers: this.securityHandlers,
|
|
122
125
|
unauthorizedHandler: this.unauthorizedHandler,
|
|
126
|
+
validateResponse: this.validateResponse,
|
|
123
127
|
ajvOptions: this.ajvOptions,
|
|
124
128
|
customizeAjv: this.customizeAjv
|
|
125
129
|
})
|
package/src/router.js
CHANGED
|
@@ -27,6 +27,7 @@ import { unauthorized } from './handlers/unauthorized.js'
|
|
|
27
27
|
* @param {object=} params.meta
|
|
28
28
|
* @param {SecurityHandler[]=} params.securityHandlers
|
|
29
29
|
* @param {Handler=} params.unauthorizedHandler
|
|
30
|
+
* @param {boolean=} params.validateResponse
|
|
30
31
|
* @param {AjvOpts=} params.ajvOptions
|
|
31
32
|
* @param {AjvCustomizer=} params.customizeAjv
|
|
32
33
|
* @param {boolean=} params.mock
|
|
@@ -42,6 +43,7 @@ export const setupRouter = ({
|
|
|
42
43
|
meta,
|
|
43
44
|
securityHandlers = [],
|
|
44
45
|
unauthorizedHandler,
|
|
46
|
+
validateResponse = true,
|
|
45
47
|
ajvOptions = {},
|
|
46
48
|
customizeAjv,
|
|
47
49
|
mock
|
|
@@ -58,12 +60,17 @@ export const setupRouter = ({
|
|
|
58
60
|
customizeAjv: customizeAjv || ajvWithExtraFormats
|
|
59
61
|
})
|
|
60
62
|
|
|
61
|
-
|
|
63
|
+
const handlers = {
|
|
62
64
|
unauthorizedHandler: unauthorizedHandler || unauthorized,
|
|
63
65
|
validationFail: requestValidation,
|
|
64
|
-
notFound
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
notFound
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (validateResponse) {
|
|
70
|
+
handlers.postResponseHandler = makeResponseValidation(logger)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
api.register(handlers)
|
|
67
74
|
|
|
68
75
|
operationIds({ specification: openAPISpecification }).forEach(
|
|
69
76
|
(operationId) => {
|
package/types/api.d.ts
CHANGED
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
* @property {Handler=} unauthorizedHandler
|
|
24
24
|
* @property {boolean=} swagger
|
|
25
25
|
* @property {boolean=} apiDocs
|
|
26
|
+
* @property {boolean=} validateResponse
|
|
26
27
|
* @property {AjvOpts=} ajvOptions
|
|
27
28
|
* @property {AjvCustomizer=} customizeAjv
|
|
28
29
|
* @property {any[]=} middleware
|
|
@@ -37,7 +38,7 @@ export class Api {
|
|
|
37
38
|
* @class
|
|
38
39
|
* @param {ApiSchema} params
|
|
39
40
|
*/
|
|
40
|
-
constructor({ version, specification, controllers, apiRoot, strictSpecification, errorDetails, logger, meta, securityHandlers, unauthorizedHandler, swagger, apiDocs, ajvOptions, customizeAjv, middleware }: ApiSchema);
|
|
41
|
+
constructor({ version, specification, controllers, apiRoot, strictSpecification, errorDetails, logger, meta, securityHandlers, unauthorizedHandler, swagger, apiDocs, validateResponse, ajvOptions, customizeAjv, middleware }: ApiSchema);
|
|
41
42
|
version: string;
|
|
42
43
|
specification: object;
|
|
43
44
|
controllers: object;
|
|
@@ -50,6 +51,7 @@ export class Api {
|
|
|
50
51
|
unauthorizedHandler: Handler | undefined;
|
|
51
52
|
swagger: boolean;
|
|
52
53
|
apiDocs: boolean;
|
|
54
|
+
validateResponse: boolean;
|
|
53
55
|
ajvOptions: import("ajv").Options;
|
|
54
56
|
customizeAjv: import("openapi-backend").AjvCustomizer | undefined;
|
|
55
57
|
middleware: any[];
|
|
@@ -81,6 +83,7 @@ export type ApiSchema = {
|
|
|
81
83
|
unauthorizedHandler?: Handler | undefined;
|
|
82
84
|
swagger?: boolean | undefined;
|
|
83
85
|
apiDocs?: boolean | undefined;
|
|
86
|
+
validateResponse?: boolean | undefined;
|
|
84
87
|
ajvOptions?: AjvOpts | undefined;
|
|
85
88
|
customizeAjv?: AjvCustomizer | undefined;
|
|
86
89
|
middleware?: any[] | undefined;
|
package/types/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.js"],"names":[],"mappings":"AAKA
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;GAGG;AAEH;IACE;;;;OAIG;IACH,gOAFW,SAAS,EAoCnB;IAhBC,gBAAsB;IACtB,sBAAkC;IAClC,oBAA8B;IAC9B,4BAAsB;IACtB,yCAA8C;IAC9C,sBAAyC;IACzC,eAA+B;IAC/B,aAAsB;IACtB,oCAA8C;IAC9C,yCAA2D;IAC3D,iBAA8B;IAC9B,iBAA8B;IAC9B,0BAAgD;IAChD,kCAAoD;IACpD,kEAAgC;IAChC,kBAA4B;IAG9B,aAuDC;CACF;sBArIY,OAAO,iBAAiB,EAAE,OAAO;sBACjC,OAAO,KAAK,EAAE,OAAO;4BACrB,OAAO,iBAAiB,EAAE,aAAa;;;;;;;;UAOtC,MAAM;aACN,OAAO;;;aAEP,MAAM;mBACN,MAAM;iBACN,MAAM;cACN,MAAM,YAAC;0BACP,OAAO,YAAC;mBACR,OAAO,YAAC;aACR,MAAM,YAAC;WACP,MAAM,YAAC;uBACP,eAAe,EAAE,YAAC;0BAClB,OAAO,YAAC;cACR,OAAO,YAAC;cACR,OAAO,YAAC;uBACR,OAAO,YAAC;iBACR,OAAO,YAAC;mBACR,aAAa,YAAC;iBACd,GAAG,EAAE,YAAC"}
|
package/types/router.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function setupRouter({ openAPISpecification, controllers, apiRoot, strictSpecification, errorDetails, logger, meta, securityHandlers, unauthorizedHandler, ajvOptions, customizeAjv, mock }: {
|
|
1
|
+
export function setupRouter({ openAPISpecification, controllers, apiRoot, strictSpecification, errorDetails, logger, meta, securityHandlers, unauthorizedHandler, validateResponse, ajvOptions, customizeAjv, mock }: {
|
|
2
2
|
openAPISpecification: object;
|
|
3
3
|
controllers: object;
|
|
4
4
|
apiRoot?: string | undefined;
|
|
@@ -8,6 +8,7 @@ export function setupRouter({ openAPISpecification, controllers, apiRoot, strict
|
|
|
8
8
|
meta?: object | undefined;
|
|
9
9
|
securityHandlers?: SecurityHandler[] | undefined;
|
|
10
10
|
unauthorizedHandler?: Handler | undefined;
|
|
11
|
+
validateResponse?: boolean | undefined;
|
|
11
12
|
ajvOptions?: AjvOpts | undefined;
|
|
12
13
|
customizeAjv?: AjvCustomizer | undefined;
|
|
13
14
|
mock?: boolean | undefined;
|
package/types/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.js"],"names":[],"mappings":"AAmCO,sNAfJ;IAAuB,oBAAoB,EAAnC,MAAM;IACS,WAAW,EAA1B,MAAM;IACU,OAAO,GAAvB,MAAM,YAAC;IACU,mBAAmB,GAApC,OAAO,YAAC;IACS,YAAY,GAA7B,OAAO,YAAC;IACQ,MAAM,GAAtB,MAAM,YAAC;IACS,IAAI,GAApB,MAAM,YAAC;IACoB,gBAAgB,GAA3C,eAAe,EAAE,YAAC;IACD,mBAAmB,GAApC,OAAO,YAAC;IACS,gBAAgB,GAAjC,OAAO,YAAC;IACS,UAAU,GAA3B,OAAO,YAAC;IACe,YAAY,GAAnC,aAAa,YAAC;IACG,IAAI,GAArB,OAAO,YAAC;CAChB,GAAU;IAAE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,CA0EtE;qBAjGY,OAAO,UAAU,EAAE,MAAM;8BACzB,OAAO,UAAU,EAAE,eAAe;sBAClC,OAAO,UAAU,EAAE,OAAO;sBAC1B,OAAO,KAAK,EAAE,OAAO;4BACrB,OAAO,iBAAiB,EAAE,aAAa;+BAdrB,iBAAiB"}
|