@xfe-repo/bff-core 1.2.0 → 1.2.2

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.
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-W3DNSORE.mjs";
6
6
 
7
7
  // src/core.module.ts
8
- import { Module as Module2 } from "@nestjs/common";
8
+ import { Module as Module3 } from "@nestjs/common";
9
9
 
10
10
  // src/ctx/ctx.module.ts
11
11
  import { Module } from "@nestjs/common";
@@ -146,7 +146,13 @@ CtxModule = _ts_decorate2([
146
146
  })
147
147
  ], CtxModule);
148
148
 
149
- // src/core.module.ts
149
+ // src/logger/logger.module.ts
150
+ import { Module as Module2 } from "@nestjs/common";
151
+ import { LoggerModule as PinoLoggerModule } from "nestjs-pino";
152
+
153
+ // src/logger/pino.logger.ts
154
+ import { Injectable as Injectable2 } from "@nestjs/common";
155
+ import { Logger } from "nestjs-pino";
150
156
  function _ts_decorate3(decorators, target, key, desc) {
151
157
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
152
158
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -154,19 +160,154 @@ function _ts_decorate3(decorators, target, key, desc) {
154
160
  return c > 3 && r && Object.defineProperty(target, key, r), r;
155
161
  }
156
162
  __name(_ts_decorate3, "_ts_decorate");
163
+ var SKIP_CONTEXTS = [
164
+ "NestFactory",
165
+ "InstanceLoader",
166
+ "RoutesResolver",
167
+ "RouterExplorer",
168
+ "ClientProxy"
169
+ ];
170
+ var _PinoLogger = class _PinoLogger extends Logger {
171
+ log(message, context) {
172
+ if (context && SKIP_CONTEXTS.includes(context)) return;
173
+ super.log(message, context);
174
+ }
175
+ };
176
+ __name(_PinoLogger, "PinoLogger");
177
+ var PinoLogger = _PinoLogger;
178
+ PinoLogger = _ts_decorate3([
179
+ Injectable2()
180
+ ], PinoLogger);
181
+
182
+ // src/logger/logger.module.ts
183
+ function _ts_decorate4(decorators, target, key, desc) {
184
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
185
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
186
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
187
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
188
+ }
189
+ __name(_ts_decorate4, "_ts_decorate");
190
+ var _LoggerModule = class _LoggerModule {
191
+ static register(options) {
192
+ const { global, logDir = "./var/log" } = options;
193
+ return {
194
+ global,
195
+ module: _LoggerModule,
196
+ imports: [
197
+ PinoLoggerModule.forRootAsync({
198
+ inject: [
199
+ CtxService
200
+ ],
201
+ useFactory: /* @__PURE__ */ __name((ctx) => {
202
+ const isProd = process.env.NODE_ENV === "production";
203
+ const stdTargets = [
204
+ {
205
+ target: "pino-pretty",
206
+ options: {
207
+ colorize: true,
208
+ minimumLevel: "debug",
209
+ ignore: "pid,hostname",
210
+ messageFormat: "{if context}[{context}]: {end} {msg} {if responseTime}{responseTime}ms {end}",
211
+ singleLine: true
212
+ }
213
+ }
214
+ ];
215
+ const fileTargets = [
216
+ {
217
+ level: "error",
218
+ target: "pino/file",
219
+ options: {
220
+ destination: `${logDir}/bff-err.log`,
221
+ mkdir: true
222
+ }
223
+ },
224
+ {
225
+ level: "debug",
226
+ target: "pino/file",
227
+ options: {
228
+ destination: `${logDir}/bff-out.log`,
229
+ mkdir: true
230
+ }
231
+ }
232
+ ];
233
+ return {
234
+ pinoHttp: {
235
+ transport: {
236
+ targets: isProd ? [
237
+ ...stdTargets,
238
+ ...fileTargets
239
+ ] : stdTargets
240
+ },
241
+ // genReqId: _req => ctx.traceid,
242
+ // customAttributeKeys: { reqId: 'traceid' },
243
+ serializers: {
244
+ req(req) {
245
+ delete req.id;
246
+ req.traceid = ctx.traceid;
247
+ req.headers.business = req.raw.headers.business;
248
+ req.headers.usertoken = req.raw.headers.usertoken;
249
+ req.headers.authorization = req.raw.headers.authorization;
250
+ req.headers.version = req.raw.headers.version;
251
+ req.url = `${req.raw.protocol}://${req.headers.host}${req.url}`;
252
+ req.body = req.raw.body;
253
+ req.user = req.raw.user;
254
+ req.tracks = ctx.tracks;
255
+ return req;
256
+ }
257
+ }
258
+ }
259
+ };
260
+ }, "useFactory")
261
+ })
262
+ ]
263
+ };
264
+ }
265
+ };
266
+ __name(_LoggerModule, "LoggerModule");
267
+ var LoggerModule = _LoggerModule;
268
+ LoggerModule = _ts_decorate4([
269
+ Module2({
270
+ providers: [
271
+ PinoLogger
272
+ ],
273
+ exports: [
274
+ PinoLogger
275
+ ]
276
+ })
277
+ ], LoggerModule);
278
+
279
+ // src/core.module.ts
280
+ function _ts_decorate5(decorators, target, key, desc) {
281
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
282
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
283
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
284
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
285
+ }
286
+ __name(_ts_decorate5, "_ts_decorate");
157
287
  var _CoreModule = class _CoreModule {
288
+ static forRoot(options) {
289
+ const { global, logger } = options;
290
+ return {
291
+ global,
292
+ imports: [
293
+ CtxModule.forRoot({
294
+ global
295
+ }),
296
+ LoggerModule.register({
297
+ global,
298
+ ...logger
299
+ })
300
+ ],
301
+ module: _CoreModule
302
+ };
303
+ }
158
304
  };
159
305
  __name(_CoreModule, "CoreModule");
160
306
  var CoreModule = _CoreModule;
161
- CoreModule = _ts_decorate3([
162
- Module2({
307
+ CoreModule = _ts_decorate5([
308
+ Module3({
163
309
  providers: [
164
310
  AppProvider
165
- ],
166
- imports: [
167
- CtxModule.forRoot({
168
- global: true
169
- })
170
311
  ]
171
312
  })
172
313
  ], CoreModule);
@@ -174,5 +315,7 @@ CoreModule = _ts_decorate3([
174
315
  export {
175
316
  CtxService,
176
317
  CtxModule,
318
+ PinoLogger,
319
+ LoggerModule,
177
320
  CoreModule
178
321
  };
@@ -0,0 +1,19 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+
3
+ interface LoggerModuleOptions {
4
+ global?: boolean;
5
+ logDir?: string;
6
+ }
7
+ declare class LoggerModule {
8
+ static register(options: LoggerModuleOptions): DynamicModule;
9
+ }
10
+
11
+ interface CoreModuleOptions {
12
+ global?: boolean;
13
+ logger?: Omit<LoggerModuleOptions, 'global'>;
14
+ }
15
+ declare class CoreModule {
16
+ static forRoot(options: CoreModuleOptions): DynamicModule;
17
+ }
18
+
19
+ export { CoreModule as C, LoggerModule as L, type CoreModuleOptions as a, type LoggerModuleOptions as b };
@@ -0,0 +1,19 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+
3
+ interface LoggerModuleOptions {
4
+ global?: boolean;
5
+ logDir?: string;
6
+ }
7
+ declare class LoggerModule {
8
+ static register(options: LoggerModuleOptions): DynamicModule;
9
+ }
10
+
11
+ interface CoreModuleOptions {
12
+ global?: boolean;
13
+ logger?: Omit<LoggerModuleOptions, 'global'>;
14
+ }
15
+ declare class CoreModule {
16
+ static forRoot(options: CoreModuleOptions): DynamicModule;
17
+ }
18
+
19
+ export { CoreModule as C, LoggerModule as L, type CoreModuleOptions as a, type LoggerModuleOptions as b };
@@ -1,4 +1,2 @@
1
- declare class CoreModule {
2
- }
3
-
4
- export { CoreModule };
1
+ import '@nestjs/common';
2
+ export { C as CoreModule, a as CoreModuleOptions } from './core.module-D9XIRLzS.mjs';
@@ -1,4 +1,2 @@
1
- declare class CoreModule {
2
- }
3
-
4
- export { CoreModule };
1
+ import '@nestjs/common';
2
+ export { C as CoreModule, a as CoreModuleOptions } from './core.module-D9XIRLzS.js';
@@ -36,7 +36,7 @@ __export(core_module_exports, {
36
36
  CoreModule: () => CoreModule
37
37
  });
38
38
  module.exports = __toCommonJS(core_module_exports);
39
- var import_common4 = require("@nestjs/common");
39
+ var import_common6 = require("@nestjs/common");
40
40
 
41
41
  // src/AppProvider.ts
42
42
  var import_common = require("@nestjs/common");
@@ -201,7 +201,13 @@ CtxModule = _ts_decorate3([
201
201
  })
202
202
  ], CtxModule);
203
203
 
204
- // src/core.module.ts
204
+ // src/logger/logger.module.ts
205
+ var import_common5 = require("@nestjs/common");
206
+ var import_nestjs_pino2 = require("nestjs-pino");
207
+
208
+ // src/logger/pino.logger.ts
209
+ var import_common4 = require("@nestjs/common");
210
+ var import_nestjs_pino = require("nestjs-pino");
205
211
  function _ts_decorate4(decorators, target, key, desc) {
206
212
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
207
213
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -209,19 +215,154 @@ function _ts_decorate4(decorators, target, key, desc) {
209
215
  return c > 3 && r && Object.defineProperty(target, key, r), r;
210
216
  }
211
217
  __name(_ts_decorate4, "_ts_decorate");
218
+ var SKIP_CONTEXTS = [
219
+ "NestFactory",
220
+ "InstanceLoader",
221
+ "RoutesResolver",
222
+ "RouterExplorer",
223
+ "ClientProxy"
224
+ ];
225
+ var _PinoLogger = class _PinoLogger extends import_nestjs_pino.Logger {
226
+ log(message, context) {
227
+ if (context && SKIP_CONTEXTS.includes(context)) return;
228
+ super.log(message, context);
229
+ }
230
+ };
231
+ __name(_PinoLogger, "PinoLogger");
232
+ var PinoLogger = _PinoLogger;
233
+ PinoLogger = _ts_decorate4([
234
+ (0, import_common4.Injectable)()
235
+ ], PinoLogger);
236
+
237
+ // src/logger/logger.module.ts
238
+ function _ts_decorate5(decorators, target, key, desc) {
239
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
240
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
241
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
242
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
243
+ }
244
+ __name(_ts_decorate5, "_ts_decorate");
245
+ var _LoggerModule = class _LoggerModule {
246
+ static register(options) {
247
+ const { global, logDir = "./var/log" } = options;
248
+ return {
249
+ global,
250
+ module: _LoggerModule,
251
+ imports: [
252
+ import_nestjs_pino2.LoggerModule.forRootAsync({
253
+ inject: [
254
+ CtxService
255
+ ],
256
+ useFactory: /* @__PURE__ */ __name((ctx) => {
257
+ const isProd = process.env.NODE_ENV === "production";
258
+ const stdTargets = [
259
+ {
260
+ target: "pino-pretty",
261
+ options: {
262
+ colorize: true,
263
+ minimumLevel: "debug",
264
+ ignore: "pid,hostname",
265
+ messageFormat: "{if context}[{context}]: {end} {msg} {if responseTime}{responseTime}ms {end}",
266
+ singleLine: true
267
+ }
268
+ }
269
+ ];
270
+ const fileTargets = [
271
+ {
272
+ level: "error",
273
+ target: "pino/file",
274
+ options: {
275
+ destination: `${logDir}/bff-err.log`,
276
+ mkdir: true
277
+ }
278
+ },
279
+ {
280
+ level: "debug",
281
+ target: "pino/file",
282
+ options: {
283
+ destination: `${logDir}/bff-out.log`,
284
+ mkdir: true
285
+ }
286
+ }
287
+ ];
288
+ return {
289
+ pinoHttp: {
290
+ transport: {
291
+ targets: isProd ? [
292
+ ...stdTargets,
293
+ ...fileTargets
294
+ ] : stdTargets
295
+ },
296
+ // genReqId: _req => ctx.traceid,
297
+ // customAttributeKeys: { reqId: 'traceid' },
298
+ serializers: {
299
+ req(req) {
300
+ delete req.id;
301
+ req.traceid = ctx.traceid;
302
+ req.headers.business = req.raw.headers.business;
303
+ req.headers.usertoken = req.raw.headers.usertoken;
304
+ req.headers.authorization = req.raw.headers.authorization;
305
+ req.headers.version = req.raw.headers.version;
306
+ req.url = `${req.raw.protocol}://${req.headers.host}${req.url}`;
307
+ req.body = req.raw.body;
308
+ req.user = req.raw.user;
309
+ req.tracks = ctx.tracks;
310
+ return req;
311
+ }
312
+ }
313
+ }
314
+ };
315
+ }, "useFactory")
316
+ })
317
+ ]
318
+ };
319
+ }
320
+ };
321
+ __name(_LoggerModule, "LoggerModule");
322
+ var LoggerModule = _LoggerModule;
323
+ LoggerModule = _ts_decorate5([
324
+ (0, import_common5.Module)({
325
+ providers: [
326
+ PinoLogger
327
+ ],
328
+ exports: [
329
+ PinoLogger
330
+ ]
331
+ })
332
+ ], LoggerModule);
333
+
334
+ // src/core.module.ts
335
+ function _ts_decorate6(decorators, target, key, desc) {
336
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
337
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
338
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
339
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
340
+ }
341
+ __name(_ts_decorate6, "_ts_decorate");
212
342
  var _CoreModule = class _CoreModule {
343
+ static forRoot(options) {
344
+ const { global, logger } = options;
345
+ return {
346
+ global,
347
+ imports: [
348
+ CtxModule.forRoot({
349
+ global
350
+ }),
351
+ LoggerModule.register({
352
+ global,
353
+ ...logger
354
+ })
355
+ ],
356
+ module: _CoreModule
357
+ };
358
+ }
213
359
  };
214
360
  __name(_CoreModule, "CoreModule");
215
361
  var CoreModule = _CoreModule;
216
- CoreModule = _ts_decorate4([
217
- (0, import_common4.Module)({
362
+ CoreModule = _ts_decorate6([
363
+ (0, import_common6.Module)({
218
364
  providers: [
219
365
  AppProvider
220
- ],
221
- imports: [
222
- CtxModule.forRoot({
223
- global: true
224
- })
225
366
  ]
226
367
  })
227
368
  ], CoreModule);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CoreModule
3
- } from "./chunk-RBCQKDK3.mjs";
3
+ } from "./chunk-ZNB7Y2GT.mjs";
4
4
  import "./chunk-W3DNSORE.mjs";
5
5
  export {
6
6
  CoreModule
package/dist/index.d.mts CHANGED
@@ -3,13 +3,18 @@ export { Request, Response } from 'express';
3
3
  import * as nestjs_cls from 'nestjs-cls';
4
4
  import { ClsStore, Terminal, ClsService } from 'nestjs-cls';
5
5
  import { DynamicModule, INestApplication, Type } from '@nestjs/common';
6
+ export { C as CoreModule, a as CoreModuleOptions, L as LoggerModule, b as LoggerModuleOptions } from './core.module-D9XIRLzS.mjs';
7
+ import { Logger } from 'nestjs-pino';
6
8
  export * from '@nestjs/swagger';
7
9
  export * from '@nestjs/swagger/dist/constants';
8
10
  export { AppProvider } from './AppProvider.mjs';
9
- export { CoreModule } from './core.module.mjs';
10
11
  export { CreateAppOptions, createApp } from './createApp.mjs';
11
12
  import '@nestjs/platform-express';
12
13
 
14
+ declare class PinoLogger extends Logger {
15
+ log(message: any, context?: string): void;
16
+ }
17
+
13
18
  type Business = 'tpl_pc' | 'tpl_weapp';
14
19
  type CtxHeaders = {
15
20
  userToken?: string;
@@ -96,4 +101,4 @@ declare class SwaggerConfig {
96
101
  private static getApiPath;
97
102
  }
98
103
 
99
- export { type CtxHeaders, CtxModule, type CtxModuleOptions, CtxService, type CtxStore, type CtxTrack, type CtxUser, type RequestCtx, type ResponseCtx, SwaggerConfig, type SwaggerSetupOptions };
104
+ export { type CtxHeaders, CtxModule, type CtxModuleOptions, CtxService, type CtxStore, type CtxTrack, type CtxUser, PinoLogger, type RequestCtx, type ResponseCtx, SwaggerConfig, type SwaggerSetupOptions };
package/dist/index.d.ts CHANGED
@@ -3,13 +3,18 @@ export { Request, Response } from 'express';
3
3
  import * as nestjs_cls from 'nestjs-cls';
4
4
  import { ClsStore, Terminal, ClsService } from 'nestjs-cls';
5
5
  import { DynamicModule, INestApplication, Type } from '@nestjs/common';
6
+ export { C as CoreModule, a as CoreModuleOptions, L as LoggerModule, b as LoggerModuleOptions } from './core.module-D9XIRLzS.js';
7
+ import { Logger } from 'nestjs-pino';
6
8
  export * from '@nestjs/swagger';
7
9
  export * from '@nestjs/swagger/dist/constants';
8
10
  export { AppProvider } from './AppProvider.js';
9
- export { CoreModule } from './core.module.js';
10
11
  export { CreateAppOptions, createApp } from './createApp.js';
11
12
  import '@nestjs/platform-express';
12
13
 
14
+ declare class PinoLogger extends Logger {
15
+ log(message: any, context?: string): void;
16
+ }
17
+
13
18
  type Business = 'tpl_pc' | 'tpl_weapp';
14
19
  type CtxHeaders = {
15
20
  userToken?: string;
@@ -96,4 +101,4 @@ declare class SwaggerConfig {
96
101
  private static getApiPath;
97
102
  }
98
103
 
99
- export { type CtxHeaders, CtxModule, type CtxModuleOptions, CtxService, type CtxStore, type CtxTrack, type CtxUser, type RequestCtx, type ResponseCtx, SwaggerConfig, type SwaggerSetupOptions };
104
+ export { type CtxHeaders, CtxModule, type CtxModuleOptions, CtxService, type CtxStore, type CtxTrack, type CtxUser, PinoLogger, type RequestCtx, type ResponseCtx, SwaggerConfig, type SwaggerSetupOptions };
package/dist/index.js CHANGED
@@ -38,6 +38,8 @@ __export(index_exports, {
38
38
  CoreModule: () => CoreModule,
39
39
  CtxModule: () => CtxModule,
40
40
  CtxService: () => CtxService,
41
+ LoggerModule: () => LoggerModule,
42
+ PinoLogger: () => PinoLogger,
41
43
  SwaggerConfig: () => SwaggerConfig,
42
44
  createApp: () => createApp
43
45
  });
@@ -182,6 +184,136 @@ CtxModule = _ts_decorate2([
182
184
  })
183
185
  ], CtxModule);
184
186
 
187
+ // src/logger/logger.module.ts
188
+ var import_common4 = require("@nestjs/common");
189
+ var import_nestjs_pino2 = require("nestjs-pino");
190
+
191
+ // src/logger/pino.logger.ts
192
+ var import_common3 = require("@nestjs/common");
193
+ var import_nestjs_pino = require("nestjs-pino");
194
+ function _ts_decorate3(decorators, target, key, desc) {
195
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
196
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
197
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
198
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
199
+ }
200
+ __name(_ts_decorate3, "_ts_decorate");
201
+ var SKIP_CONTEXTS = [
202
+ "NestFactory",
203
+ "InstanceLoader",
204
+ "RoutesResolver",
205
+ "RouterExplorer",
206
+ "ClientProxy"
207
+ ];
208
+ var _PinoLogger = class _PinoLogger extends import_nestjs_pino.Logger {
209
+ log(message, context) {
210
+ if (context && SKIP_CONTEXTS.includes(context)) return;
211
+ super.log(message, context);
212
+ }
213
+ };
214
+ __name(_PinoLogger, "PinoLogger");
215
+ var PinoLogger = _PinoLogger;
216
+ PinoLogger = _ts_decorate3([
217
+ (0, import_common3.Injectable)()
218
+ ], PinoLogger);
219
+
220
+ // src/logger/logger.module.ts
221
+ function _ts_decorate4(decorators, target, key, desc) {
222
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
223
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
224
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
225
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
226
+ }
227
+ __name(_ts_decorate4, "_ts_decorate");
228
+ var _LoggerModule = class _LoggerModule {
229
+ static register(options) {
230
+ const { global, logDir = "./var/log" } = options;
231
+ return {
232
+ global,
233
+ module: _LoggerModule,
234
+ imports: [
235
+ import_nestjs_pino2.LoggerModule.forRootAsync({
236
+ inject: [
237
+ CtxService
238
+ ],
239
+ useFactory: /* @__PURE__ */ __name((ctx) => {
240
+ const isProd = process.env.NODE_ENV === "production";
241
+ const stdTargets = [
242
+ {
243
+ target: "pino-pretty",
244
+ options: {
245
+ colorize: true,
246
+ minimumLevel: "debug",
247
+ ignore: "pid,hostname",
248
+ messageFormat: "{if context}[{context}]: {end} {msg} {if responseTime}{responseTime}ms {end}",
249
+ singleLine: true
250
+ }
251
+ }
252
+ ];
253
+ const fileTargets = [
254
+ {
255
+ level: "error",
256
+ target: "pino/file",
257
+ options: {
258
+ destination: `${logDir}/bff-err.log`,
259
+ mkdir: true
260
+ }
261
+ },
262
+ {
263
+ level: "debug",
264
+ target: "pino/file",
265
+ options: {
266
+ destination: `${logDir}/bff-out.log`,
267
+ mkdir: true
268
+ }
269
+ }
270
+ ];
271
+ return {
272
+ pinoHttp: {
273
+ transport: {
274
+ targets: isProd ? [
275
+ ...stdTargets,
276
+ ...fileTargets
277
+ ] : stdTargets
278
+ },
279
+ // genReqId: _req => ctx.traceid,
280
+ // customAttributeKeys: { reqId: 'traceid' },
281
+ serializers: {
282
+ req(req) {
283
+ delete req.id;
284
+ req.traceid = ctx.traceid;
285
+ req.headers.business = req.raw.headers.business;
286
+ req.headers.usertoken = req.raw.headers.usertoken;
287
+ req.headers.authorization = req.raw.headers.authorization;
288
+ req.headers.version = req.raw.headers.version;
289
+ req.url = `${req.raw.protocol}://${req.headers.host}${req.url}`;
290
+ req.body = req.raw.body;
291
+ req.user = req.raw.user;
292
+ req.tracks = ctx.tracks;
293
+ return req;
294
+ }
295
+ }
296
+ }
297
+ };
298
+ }, "useFactory")
299
+ })
300
+ ]
301
+ };
302
+ }
303
+ };
304
+ __name(_LoggerModule, "LoggerModule");
305
+ var LoggerModule = _LoggerModule;
306
+ LoggerModule = _ts_decorate4([
307
+ (0, import_common4.Module)({
308
+ providers: [
309
+ PinoLogger
310
+ ],
311
+ exports: [
312
+ PinoLogger
313
+ ]
314
+ })
315
+ ], LoggerModule);
316
+
185
317
  // src/swagger/index.ts
186
318
  var swagger_exports = {};
187
319
  __export(swagger_exports, {
@@ -233,14 +365,14 @@ __reExport(swagger_exports, require("@nestjs/swagger/dist/constants"));
233
365
  __reExport(index_exports, swagger_exports, module.exports);
234
366
 
235
367
  // src/AppProvider.ts
236
- var import_common3 = require("@nestjs/common");
237
- function _ts_decorate3(decorators, target, key, desc) {
368
+ var import_common5 = require("@nestjs/common");
369
+ function _ts_decorate5(decorators, target, key, desc) {
238
370
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
239
371
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
240
372
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
241
373
  return c > 3 && r && Object.defineProperty(target, key, r), r;
242
374
  }
243
- __name(_ts_decorate3, "_ts_decorate");
375
+ __name(_ts_decorate5, "_ts_decorate");
244
376
  var _AppProvider = class _AppProvider {
245
377
  static setInstance(app) {
246
378
  this.instance = app;
@@ -252,32 +384,43 @@ var _AppProvider = class _AppProvider {
252
384
  __name(_AppProvider, "AppProvider");
253
385
  __publicField(_AppProvider, "instance");
254
386
  var AppProvider = _AppProvider;
255
- AppProvider = _ts_decorate3([
256
- (0, import_common3.Injectable)()
387
+ AppProvider = _ts_decorate5([
388
+ (0, import_common5.Injectable)()
257
389
  ], AppProvider);
258
390
 
259
391
  // src/core.module.ts
260
- var import_common4 = require("@nestjs/common");
261
- function _ts_decorate4(decorators, target, key, desc) {
392
+ var import_common6 = require("@nestjs/common");
393
+ function _ts_decorate6(decorators, target, key, desc) {
262
394
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
263
395
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
264
396
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
265
397
  return c > 3 && r && Object.defineProperty(target, key, r), r;
266
398
  }
267
- __name(_ts_decorate4, "_ts_decorate");
399
+ __name(_ts_decorate6, "_ts_decorate");
268
400
  var _CoreModule = class _CoreModule {
401
+ static forRoot(options) {
402
+ const { global, logger } = options;
403
+ return {
404
+ global,
405
+ imports: [
406
+ CtxModule.forRoot({
407
+ global
408
+ }),
409
+ LoggerModule.register({
410
+ global,
411
+ ...logger
412
+ })
413
+ ],
414
+ module: _CoreModule
415
+ };
416
+ }
269
417
  };
270
418
  __name(_CoreModule, "CoreModule");
271
419
  var CoreModule = _CoreModule;
272
- CoreModule = _ts_decorate4([
273
- (0, import_common4.Module)({
420
+ CoreModule = _ts_decorate6([
421
+ (0, import_common6.Module)({
274
422
  providers: [
275
423
  AppProvider
276
- ],
277
- imports: [
278
- CtxModule.forRoot({
279
- global: true
280
- })
281
424
  ]
282
425
  })
283
426
  ], CoreModule);
@@ -308,6 +451,8 @@ __name(createApp, "createApp");
308
451
  CoreModule,
309
452
  CtxModule,
310
453
  CtxService,
454
+ LoggerModule,
455
+ PinoLogger,
311
456
  SwaggerConfig,
312
457
  createApp
313
458
  });
package/dist/index.mjs CHANGED
@@ -1,8 +1,10 @@
1
1
  import {
2
2
  CoreModule,
3
3
  CtxModule,
4
- CtxService
5
- } from "./chunk-RBCQKDK3.mjs";
4
+ CtxService,
5
+ LoggerModule,
6
+ PinoLogger
7
+ } from "./chunk-ZNB7Y2GT.mjs";
6
8
  import {
7
9
  SwaggerConfig,
8
10
  createApp,
@@ -21,6 +23,8 @@ __export(index_exports, {
21
23
  CoreModule: () => CoreModule,
22
24
  CtxModule: () => CtxModule,
23
25
  CtxService: () => CtxService,
26
+ LoggerModule: () => LoggerModule,
27
+ PinoLogger: () => PinoLogger,
24
28
  SwaggerConfig: () => SwaggerConfig,
25
29
  createApp: () => createApp
26
30
  });
@@ -30,6 +34,8 @@ export {
30
34
  CoreModule,
31
35
  CtxModule,
32
36
  CtxService,
37
+ LoggerModule,
38
+ PinoLogger,
33
39
  SwaggerConfig,
34
40
  createApp
35
41
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xfe-repo/bff-core",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "sideEffects": false,
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -26,6 +26,8 @@
26
26
  "@nestjs/platform-express": "^11.1.12",
27
27
  "@nestjs/swagger": "^11.2.5",
28
28
  "nestjs-cls": "^6.2.0",
29
+ "nestjs-pino": "^4.5.0",
30
+ "pino-pretty": "^13.1.3",
29
31
  "request-ip": "^3.3.0",
30
32
  "uuid": "^11.1.0"
31
33
  },