@rosen-bridge/fastify-enhanced 3.2.0 → 3.3.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/CHANGELOG.md +6 -0
- package/dist/fastify.d.ts.map +1 -1
- package/dist/fastify.js +15 -4
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/dist/fastify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../lib/fastify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../lib/fastify.ts"],"names":[],"mappings":"AAQA,OAAO,oBAAoB,CAAC;AAM5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,cAAa,WAMZ,EACD,OAAM,WAAgB,KACrB,OAAO,CAAC,cAAc,CA4BxB,CAAC"}
|
package/dist/fastify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Fastify from 'fastify';
|
|
2
|
-
import { fastifyZodOpenApiPlugin, serializerCompiler, validatorCompiler, } from 'fastify-zod-openapi';
|
|
2
|
+
import { ResponseSerializationError, fastifyZodOpenApiPlugin, serializerCompiler, validatorCompiler, } from 'fastify-zod-openapi';
|
|
3
3
|
import 'zod-openapi/extend';
|
|
4
4
|
import { DummyLogger } from '@rosen-bridge/abstract-logger';
|
|
5
5
|
import { FastifyLogger } from './logger';
|
|
@@ -15,15 +15,26 @@ export const makeFastify = async (swaggerOpts = {
|
|
|
15
15
|
version: '0.0.1',
|
|
16
16
|
enableCSP: false,
|
|
17
17
|
}, opts = {}) => {
|
|
18
|
+
const { mapResponseSerializationErrors, ...fastifyOpts } = opts;
|
|
18
19
|
const fastify = Fastify({
|
|
19
|
-
...
|
|
20
|
+
...fastifyOpts,
|
|
20
21
|
logger: false,
|
|
21
|
-
loggerInstance: new FastifyLogger(
|
|
22
|
+
loggerInstance: new FastifyLogger(fastifyOpts.logger ?? new DummyLogger()),
|
|
22
23
|
}).withTypeProvider();
|
|
23
24
|
fastify.setValidatorCompiler(validatorCompiler);
|
|
24
25
|
fastify.setSerializerCompiler(serializerCompiler);
|
|
25
26
|
await fastify.register(fastifyZodOpenApiPlugin);
|
|
26
27
|
await registerSwagger(fastify, swaggerOpts);
|
|
28
|
+
fastify.setErrorHandler(function (error, request, reply) {
|
|
29
|
+
if ((mapResponseSerializationErrors ?? true) &&
|
|
30
|
+
error instanceof ResponseSerializationError) {
|
|
31
|
+
this.log.error(error);
|
|
32
|
+
reply.status(500).send({ message: 'Internal server error' });
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
reply.send(error);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
27
38
|
return fastify;
|
|
28
39
|
};
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdGlmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9mYXN0aWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEVBRUwsMEJBQTBCLEVBQzFCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRzVDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQzlCLGNBQTJCO0lBQ3pCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLO0lBQ1osV0FBVyxFQUFFLEVBQUU7SUFDZixPQUFPLEVBQUUsT0FBTztJQUNoQixTQUFTLEVBQUUsS0FBSztDQUNqQixFQUNELE9BQW9CLEVBQUUsRUFDRyxFQUFFO0lBQzNCLE1BQU0sRUFBRSw4QkFBOEIsRUFBRSxHQUFHLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztJQUNoRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdEIsR0FBRyxXQUFXO1FBQ2QsTUFBTSxFQUFFLEtBQUs7UUFDYixjQUFjLEVBQUUsSUFBSSxhQUFhLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFDO0tBQzNFLENBQUMsQ0FBQyxnQkFBZ0IsRUFBaUMsQ0FBQztJQUVyRCxPQUFPLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNoRCxPQUFPLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUVsRCxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUVoRCxNQUFNLGVBQWUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFNUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSztRQUNyRCxJQUNFLENBQUMsOEJBQThCLElBQUksSUFBSSxDQUFDO1lBQ3hDLEtBQUssWUFBWSwwQkFBMEIsRUFDM0MsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RCLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQztRQUMvRCxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZhc3RpZnkgZnJvbSAnZmFzdGlmeSc7XG5pbXBvcnQge1xuICB0eXBlIEZhc3RpZnlab2RPcGVuQXBpVHlwZVByb3ZpZGVyLFxuICBSZXNwb25zZVNlcmlhbGl6YXRpb25FcnJvcixcbiAgZmFzdGlmeVpvZE9wZW5BcGlQbHVnaW4sXG4gIHNlcmlhbGl6ZXJDb21waWxlcixcbiAgdmFsaWRhdG9yQ29tcGlsZXIsXG59IGZyb20gJ2Zhc3RpZnktem9kLW9wZW5hcGknO1xuaW1wb3J0ICd6b2Qtb3BlbmFwaS9leHRlbmQnO1xuXG5pbXBvcnQgeyBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcblxuaW1wb3J0IHsgRmFzdGlmeUxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IHJlZ2lzdGVyU3dhZ2dlciB9IGZyb20gJy4vc3dhZ2dlcic7XG5pbXBvcnQgeyBGYXN0aWZ5T3B0cywgRmFzdGlmeVdpdGhab2QsIFN3YWdnZXJPcHRzIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogY3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBGYXN0aWZ5IHdpdGggWm9kIHZhbGlkYXRpb24gbGlicmFyeSBhcyB2YWxpZGF0b3IgYW5kXG4gKiB0eXBlIHByb3ZpZGVyXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlRmFzdGlmeSA9IGFzeW5jIChcbiAgc3dhZ2dlck9wdHM6IFN3YWdnZXJPcHRzID0ge1xuICAgIHBhdGg6ICcvc3dhZ2dlcicsXG4gICAgdGl0bGU6ICdhcGknLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB2ZXJzaW9uOiAnMC4wLjEnLFxuICAgIGVuYWJsZUNTUDogZmFsc2UsXG4gIH0sXG4gIG9wdHM6IEZhc3RpZnlPcHRzID0ge30sXG4pOiBQcm9taXNlPEZhc3RpZnlXaXRoWm9kPiA9PiB7XG4gIGNvbnN0IHsgbWFwUmVzcG9uc2VTZXJpYWxpemF0aW9uRXJyb3JzLCAuLi5mYXN0aWZ5T3B0cyB9ID0gb3B0cztcbiAgY29uc3QgZmFzdGlmeSA9IEZhc3RpZnkoe1xuICAgIC4uLmZhc3RpZnlPcHRzLFxuICAgIGxvZ2dlcjogZmFsc2UsXG4gICAgbG9nZ2VySW5zdGFuY2U6IG5ldyBGYXN0aWZ5TG9nZ2VyKGZhc3RpZnlPcHRzLmxvZ2dlciA/PyBuZXcgRHVtbXlMb2dnZXIoKSksXG4gIH0pLndpdGhUeXBlUHJvdmlkZXI8RmFzdGlmeVpvZE9wZW5BcGlUeXBlUHJvdmlkZXI+KCk7XG5cbiAgZmFzdGlmeS5zZXRWYWxpZGF0b3JDb21waWxlcih2YWxpZGF0b3JDb21waWxlcik7XG4gIGZhc3RpZnkuc2V0U2VyaWFsaXplckNvbXBpbGVyKHNlcmlhbGl6ZXJDb21waWxlcik7XG5cbiAgYXdhaXQgZmFzdGlmeS5yZWdpc3RlcihmYXN0aWZ5Wm9kT3BlbkFwaVBsdWdpbik7XG5cbiAgYXdhaXQgcmVnaXN0ZXJTd2FnZ2VyKGZhc3RpZnksIHN3YWdnZXJPcHRzKTtcblxuICBmYXN0aWZ5LnNldEVycm9ySGFuZGxlcihmdW5jdGlvbiAoZXJyb3IsIHJlcXVlc3QsIHJlcGx5KSB7XG4gICAgaWYgKFxuICAgICAgKG1hcFJlc3BvbnNlU2VyaWFsaXphdGlvbkVycm9ycyA/PyB0cnVlKSAmJlxuICAgICAgZXJyb3IgaW5zdGFuY2VvZiBSZXNwb25zZVNlcmlhbGl6YXRpb25FcnJvclxuICAgICkge1xuICAgICAgdGhpcy5sb2cuZXJyb3IoZXJyb3IpO1xuICAgICAgcmVwbHkuc3RhdHVzKDUwMCkuc2VuZCh7IG1lc3NhZ2U6ICdJbnRlcm5hbCBzZXJ2ZXIgZXJyb3InIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXBseS5zZW5kKGVycm9yKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBmYXN0aWZ5O1xufTtcbiJdfQ==
|
package/dist/types.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export type FastifyWithZodServer = http.Server<typeof http.IncomingMessage, type
|
|
|
7
7
|
export type FastifyWithZod = FastifyInstance<FastifyWithZodServer, http.IncomingMessage, http.ServerResponse<http.IncomingMessage>, FastifyLogger, FastifyZodOpenApiTypeProvider>;
|
|
8
8
|
export type FastifyOpts = Omit<FastifyHttpOptions<FastifyWithZodServer, FastifyLogger>, 'loggerInstance' | 'logger'> & {
|
|
9
9
|
logger?: AbstractLogger;
|
|
10
|
+
mapResponseSerializationErrors?: boolean;
|
|
10
11
|
};
|
|
11
12
|
export type SwaggerOpts = {
|
|
12
13
|
path: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAC5C,OAAO,IAAI,CAAC,eAAe,EAC3B,OAAO,IAAI,CAAC,cAAc,CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,eAAe,CAC1C,oBAAoB,EACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,EACzC,aAAa,EACb,6BAA6B,CAC9B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,kBAAkB,CAAC,oBAAoB,EAAE,aAAa,CAAC,EACvD,gBAAgB,GAAG,QAAQ,CAC5B,GAAG;IACF,MAAM,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAC5C,OAAO,IAAI,CAAC,eAAe,EAC3B,OAAO,IAAI,CAAC,cAAc,CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,eAAe,CAC1C,oBAAoB,EACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,EACzC,aAAa,EACb,6BAA6B,CAC9B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,kBAAkB,CAAC,oBAAoB,EAAE,aAAa,CAAC,EACvD,gBAAgB,GAAG,QAAQ,CAC5B,GAAG;IACF,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhc3RpZnlJbnN0YW5jZSwgRmFzdGlmeUh0dHBPcHRpb25zIH0gZnJvbSAnZmFzdGlmeSc7XG5pbXBvcnQgdHlwZSB7IEZhc3RpZnlab2RPcGVuQXBpVHlwZVByb3ZpZGVyIH0gZnJvbSAnZmFzdGlmeS16b2Qtb3BlbmFwaSc7XG5pbXBvcnQgKiBhcyBodHRwIGZyb20gJ2h0dHAnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcblxuaW1wb3J0IHsgRmFzdGlmeUxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IHR5cGUgRmFzdGlmeVdpdGhab2RTZXJ2ZXIgPSBodHRwLlNlcnZlcjxcbiAgdHlwZW9mIGh0dHAuSW5jb21pbmdNZXNzYWdlLFxuICB0eXBlb2YgaHR0cC5TZXJ2ZXJSZXNwb25zZVxuPjtcblxuZXhwb3J0IHR5cGUgRmFzdGlmeVdpdGhab2QgPSBGYXN0aWZ5SW5zdGFuY2U8XG4gIEZhc3RpZnlXaXRoWm9kU2VydmVyLFxuICBodHRwLkluY29taW5nTWVzc2FnZSxcbiAgaHR0cC5TZXJ2ZXJSZXNwb25zZTxodHRwLkluY29taW5nTWVzc2FnZT4sXG4gIEZhc3RpZnlMb2dnZXIsXG4gIEZhc3RpZnlab2RPcGVuQXBpVHlwZVByb3ZpZGVyXG4+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhc3RpZnlJbnN0YW5jZSwgRmFzdGlmeUh0dHBPcHRpb25zIH0gZnJvbSAnZmFzdGlmeSc7XG5pbXBvcnQgdHlwZSB7IEZhc3RpZnlab2RPcGVuQXBpVHlwZVByb3ZpZGVyIH0gZnJvbSAnZmFzdGlmeS16b2Qtb3BlbmFwaSc7XG5pbXBvcnQgKiBhcyBodHRwIGZyb20gJ2h0dHAnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcblxuaW1wb3J0IHsgRmFzdGlmeUxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IHR5cGUgRmFzdGlmeVdpdGhab2RTZXJ2ZXIgPSBodHRwLlNlcnZlcjxcbiAgdHlwZW9mIGh0dHAuSW5jb21pbmdNZXNzYWdlLFxuICB0eXBlb2YgaHR0cC5TZXJ2ZXJSZXNwb25zZVxuPjtcblxuZXhwb3J0IHR5cGUgRmFzdGlmeVdpdGhab2QgPSBGYXN0aWZ5SW5zdGFuY2U8XG4gIEZhc3RpZnlXaXRoWm9kU2VydmVyLFxuICBodHRwLkluY29taW5nTWVzc2FnZSxcbiAgaHR0cC5TZXJ2ZXJSZXNwb25zZTxodHRwLkluY29taW5nTWVzc2FnZT4sXG4gIEZhc3RpZnlMb2dnZXIsXG4gIEZhc3RpZnlab2RPcGVuQXBpVHlwZVByb3ZpZGVyXG4+O1xuXG5leHBvcnQgdHlwZSBGYXN0aWZ5T3B0cyA9IE9taXQ8XG4gIEZhc3RpZnlIdHRwT3B0aW9uczxGYXN0aWZ5V2l0aFpvZFNlcnZlciwgRmFzdGlmeUxvZ2dlcj4sXG4gICdsb2dnZXJJbnN0YW5jZScgfCAnbG9nZ2VyJ1xuPiAmIHtcbiAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXI7XG4gIG1hcFJlc3BvbnNlU2VyaWFsaXphdGlvbkVycm9ycz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBTd2FnZ2VyT3B0cyA9IHtcbiAgcGF0aDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGVuYWJsZUNTUDogYm9vbGVhbjtcbn07XG4iXX0=
|