snap-on-openapi 1.0.21 → 1.0.22

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/OpenApi.js CHANGED
@@ -133,8 +133,9 @@ export class OpenApi {
133
133
  let onResponse;
134
134
  let onHandler;
135
135
  try {
136
+ const logger = await this.config.requestLogger?.(originalReq) ?? this.logger;
136
137
  if (this.config.onRequest) {
137
- onRequest = { request: originalReq, logger: this.logger };
138
+ onRequest = { request: originalReq, logger };
138
139
  await this.config.onRequest(onRequest);
139
140
  }
140
141
  const url = new URL(originalReq.url);
@@ -142,7 +143,7 @@ export class OpenApi {
142
143
  const urlPath = url.pathname.replace(basePath, '');
143
144
  const route = this.getRouteForPath(urlPath, originalReq.method);
144
145
  if (!route) {
145
- this.logger.info(`Route for ${originalReq.method}:${urlPath} not found`);
146
+ logger.info(`Route for ${originalReq.method}:${urlPath} not found`);
146
147
  throw new BuiltInError(ErrorCode.NotFound);
147
148
  }
148
149
  const pathParams = {};
@@ -186,7 +187,7 @@ export class OpenApi {
186
187
  };
187
188
  onRoute = {
188
189
  request: originalReq,
189
- logger: this.logger,
190
+ logger,
190
191
  path: urlPath,
191
192
  method: originalReq.method,
192
193
  params: pathParams,
@@ -219,7 +220,7 @@ export class OpenApi {
219
220
  const context = await this.config.routes[route.type].contextFactory({
220
221
  route: route,
221
222
  request: originalReq,
222
- logger: this.logger,
223
+ logger,
223
224
  params: {
224
225
  query: query.data,
225
226
  path: path.data,
@@ -253,7 +254,7 @@ export class OpenApi {
253
254
  const response = await wrapper(handler, {
254
255
  route: route,
255
256
  request: originalReq,
256
- logger: this.logger,
257
+ logger,
257
258
  params: {
258
259
  query: query.data,
259
260
  path: path.data,
@@ -297,8 +298,8 @@ export class OpenApi {
297
298
  try {
298
299
  const event = {
299
300
  ...eventPieces,
301
+ logger: eventPieces?.logger ?? this.logger,
300
302
  request: req,
301
- logger: this.logger,
302
303
  error: e,
303
304
  };
304
305
  const response = this.config.onError ? await this.config.onError(event) : this.config.defaultError;
@@ -16,6 +16,7 @@ import { ILogger } from '../../services/Logger/types/ILogger.js';
16
16
  export type Config<TRouteTypes extends string, TErrorCodes extends string, TErrorConfigMap extends ErrorConfigMap<TErrorCodes>, TRouteParamMap extends RouteExtraPropsMap<TRouteTypes>, TRouteContextMap extends RouteContextMap<TRouteTypes, TRouteParamMap>, TRouteConfigMap extends RouteConfigMap<TRouteTypes, TErrorCodes, TRouteParamMap, TRouteContextMap>> = {
17
17
  disableResponseValidation?: boolean;
18
18
  logger?: ILogger;
19
+ requestLogger?: (req: Request) => Promise<ILogger>;
19
20
  basePath: RoutePath;
20
21
  routes: TRouteConfigMap;
21
22
  generator?: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "snap-on-openapi",
3
3
  "author": "Alex Sarychev",
4
- "version": "1.0.21",
4
+ "version": "1.0.22",
5
5
  "description": "Swiftly build type-checked OpenAPI applications with Zod and TypeScript",
6
6
  "type": "module",
7
7
  "license": "ISC",