@142vip/nest-starter 0.0.1-alpha.1 → 0.0.1-alpha.10

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.
Files changed (56) hide show
  1. package/dist/app.config.d.ts +1 -1
  2. package/dist/app.config.d.ts.map +1 -0
  3. package/dist/app.config.js +2 -2
  4. package/dist/config/index.d.ts +1 -0
  5. package/dist/config/index.d.ts.map +1 -0
  6. package/dist/config/index.js +0 -1
  7. package/dist/config/plugin/logger.config.d.ts +1 -0
  8. package/dist/config/plugin/logger.config.d.ts.map +1 -0
  9. package/dist/config/plugin/logger.config.js +3 -1
  10. package/dist/config/plugin/redis.config.d.ts +2 -1
  11. package/dist/config/plugin/redis.config.d.ts.map +1 -0
  12. package/dist/config/plugin/redis.config.js +1 -1
  13. package/dist/config/plugin/sequelize.config.d.ts +2 -0
  14. package/dist/config/plugin/sequelize.config.d.ts.map +1 -0
  15. package/dist/config/plugin/sequelize.config.js +16 -1
  16. package/dist/config/plugin/swagger.config.d.ts +4 -0
  17. package/dist/config/plugin/swagger.config.d.ts.map +1 -0
  18. package/dist/config/plugin/swagger.config.js +11 -5
  19. package/dist/config/plugin/typeorm.config.d.ts +36 -3
  20. package/dist/config/plugin/typeorm.config.d.ts.map +1 -0
  21. package/dist/config/plugin/typeorm.config.js +120 -11
  22. package/dist/config/starter.config.d.ts +5 -5
  23. package/dist/config/starter.config.d.ts.map +1 -0
  24. package/dist/config/starter.config.js +29 -8
  25. package/dist/config.module.d.ts +7 -2
  26. package/dist/config.module.d.ts.map +1 -0
  27. package/dist/config.module.js +15 -44
  28. package/dist/index.d.ts +3 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +2 -1
  31. package/dist/nest-process.d.ts +1 -0
  32. package/dist/nest-process.d.ts.map +1 -0
  33. package/dist/nest-process.js +1 -1
  34. package/dist/nest-root.module.d.ts +1 -0
  35. package/dist/nest-root.module.d.ts.map +1 -0
  36. package/dist/nest-root.module.js +5 -2
  37. package/dist/nest-starter.d.ts +6 -11
  38. package/dist/nest-starter.d.ts.map +1 -0
  39. package/dist/nest-starter.js +40 -39
  40. package/dist/nest-util.d.ts +24 -0
  41. package/dist/nest-util.d.ts.map +1 -0
  42. package/dist/nest-util.js +77 -20
  43. package/dist/pkgs.d.ts +6 -0
  44. package/dist/pkgs.d.ts.map +1 -0
  45. package/dist/pkgs.js +21 -0
  46. package/dist/swagger/index.d.ts +2 -0
  47. package/dist/swagger/index.d.ts.map +1 -0
  48. package/dist/swagger/index.js +2 -0
  49. package/dist/swagger/swagger.manager.d.ts +8 -0
  50. package/dist/swagger/swagger.manager.d.ts.map +1 -0
  51. package/dist/swagger/swagger.manager.js +16 -1
  52. package/dist/swagger/swagger.type.d.ts +5 -0
  53. package/dist/swagger/swagger.type.d.ts.map +1 -0
  54. package/dist/swagger/swagger.type.js +11 -0
  55. package/index.js +9 -0
  56. package/package.json +15 -10
@@ -9,6 +9,7 @@ var NestProcessNodeEnv;
9
9
  NestProcessNodeEnv["DEVELOP"] = "dev";
10
10
  })(NestProcessNodeEnv || (NestProcessNodeEnv = {}));
11
11
  class NestProcess {
12
+ static instance;
12
13
  static getInstance() {
13
14
  if (this.instance == null)
14
15
  this.instance = new NestProcess();
@@ -79,4 +80,3 @@ class NestProcess {
79
80
  }
80
81
  }
81
82
  exports.nestProcess = NestProcess.getInstance();
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC1wcm9jZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25lc3QtcHJvY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBeUM7QUFFekMsSUFBSyxrQkFJSjtBQUpELFdBQUssa0JBQWtCO0lBQ3JCLHFDQUFlLENBQUE7SUFDZixtQ0FBYSxDQUFBO0lBQ2IscUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSkksa0JBQWtCLEtBQWxCLGtCQUFrQixRQUl0QjtBQUVELE1BQU0sV0FBVztJQUdSLE1BQU0sQ0FBQyxXQUFXO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQTtRQUVuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLGtCQUFrQixDQUFDLEtBQUssQ0FBQTtJQUN2RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxrQkFBa0IsQ0FBQyxJQUFJLENBQUE7SUFDdEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPLENBQUE7SUFDekQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksYUFBYTtRQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDakMsT0FBTyxPQUFPLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBNkIsQ0FBQyxDQUFBO0lBQ3JHLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFjO1FBQzFCLE9BQU8saUJBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTTtRQUNYLE9BQU8saUJBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUNsQyxDQUFDO0NBQ0Y7QUFFWSxRQUFBLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUEifQ==
@@ -2,3 +2,4 @@ import { DynamicModule } from '@nestjs/common';
2
2
  export declare class NestRootModule {
3
3
  static register(rootModuleOptions: Omit<DynamicModule, 'module'>): DynamicModule;
4
4
  }
5
+ //# sourceMappingURL=nest-root.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest-root.module.d.ts","sourceRoot":"","sources":["../src/nest-root.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAA;AAEtD,qBAKa,cAAc;WACX,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,aAAa;CAMxF"}
@@ -19,6 +19,9 @@ let NestRootModule = NestRootModule_1 = class NestRootModule {
19
19
  };
20
20
  exports.NestRootModule = NestRootModule;
21
21
  exports.NestRootModule = NestRootModule = NestRootModule_1 = __decorate([
22
- (0, common_1.Module)({})
22
+ (0, common_1.Module)({
23
+ imports: [
24
+ // NestConfigModule,
25
+ ],
26
+ })
23
27
  ], NestRootModule);
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC1yb290Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXN0LXJvb3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSwyQ0FBc0Q7QUFHL0MsSUFBTSxjQUFjLHNCQUFwQixNQUFNLGNBQWM7SUFDbEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBZ0Q7UUFDckUsT0FBTztZQUNMLE1BQU0sRUFBRSxnQkFBYztZQUN0QixHQUFHLGlCQUFpQjtTQUNyQixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUFQWSx3Q0FBYzt5QkFBZCxjQUFjO0lBRDFCLElBQUEsZUFBTSxFQUFDLEVBQUUsQ0FBQztHQUNFLGNBQWMsQ0FPMUIifQ==
@@ -1,5 +1,7 @@
1
+ import type { ClassConstructor } from 'class-transformer';
1
2
  import { NestModule } from '@142vip/nest';
2
3
  import { NestApplicationOptions } from '@nestjs/common';
4
+ import { NestAppConfig } from './app.config';
3
5
  /**
4
6
  * Nest框架启动器
5
7
  */
@@ -7,12 +9,9 @@ export declare class NestStarter {
7
9
  protected readonly nestApplicationOptions?: NestApplicationOptions | undefined;
8
10
  private static instance;
9
11
  /**
10
- * 启动配置
11
- * @private
12
- */
13
- private readonly starterConfig;
14
- /**
12
+ *
15
13
  * @param nestApplicationOptions
14
+ * @protected
16
15
  */
17
16
  protected constructor(nestApplicationOptions?: NestApplicationOptions | undefined);
18
17
  /**
@@ -23,12 +22,7 @@ export declare class NestStarter {
23
22
  /**
24
23
  * 入口
25
24
  */
26
- start(appRootModule: NestModule): Promise<void>;
27
- /**
28
- * 设置全局配置
29
- * @private
30
- */
31
- private setGlobalConfig;
25
+ start(appModule: NestModule, rootConfigSchema: ClassConstructor<NestAppConfig>): Promise<void>;
32
26
  /**
33
27
  * 注册全局模块
34
28
  * @private
@@ -36,3 +30,4 @@ export declare class NestStarter {
36
30
  private registerGlobalModules;
37
31
  private getProviders;
38
32
  }
33
+ //# sourceMappingURL=nest-starter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest-starter.d.ts","sourceRoot":"","sources":["../src/nest-starter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAKzC,OAAO,EAGL,sBAAsB,EAEvB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAM5C;;GAEG;AACH,qBAAa,WAAW;IAQpB,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB;IAPpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa;IACpC;;;;OAIG;IACH,SAAS,aACY,sBAAsB,CAAC,EAAE,sBAAsB,YAAA;IAGpE;;;OAGG;WACW,WAAW,CACvB,sBAAsB,CAAC,EAAE,sBAAsB,GAC9C,WAAW;IAOd;;OAEG;IACU,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D3G;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,YAAY;CAgErB"}
@@ -7,6 +7,7 @@ const nest_typeorm_1 = require("@142vip/nest-typeorm");
7
7
  const utils_1 = require("@142vip/utils");
8
8
  const common_1 = require("@nestjs/common");
9
9
  const core_1 = require("@nestjs/core");
10
+ const nest_typed_config_1 = require("nest-typed-config");
10
11
  const config_module_1 = require("./config.module");
11
12
  const nest_root_module_1 = require("./nest-root.module");
12
13
  const nest_util_1 = require("./nest-util");
@@ -15,25 +16,21 @@ const swagger_manager_1 = require("./swagger/swagger.manager");
15
16
  * Nest框架启动器
16
17
  */
17
18
  class NestStarter {
19
+ nestApplicationOptions;
20
+ static instance;
18
21
  /**
22
+ *
19
23
  * @param nestApplicationOptions
24
+ * @protected
20
25
  */
21
26
  constructor(nestApplicationOptions) {
22
27
  this.nestApplicationOptions = nestApplicationOptions;
23
- /**
24
- * 启动配置
25
- * @private
26
- */
27
- this.starterConfig = config_module_1.nestStaterConfig;
28
28
  }
29
29
  /**
30
30
  * 单例
31
31
  * @param nestApplicationOptions 应用启动选项
32
32
  */
33
33
  static getInstance(nestApplicationOptions) {
34
- // 开启日志
35
- if (config_module_1.nestStaterConfig?.enableLogger)
36
- utils_1.vipLogger.logByBlank(JSON.stringify(config_module_1.nestStaterConfig, null, 2));
37
34
  if (this.instance == null)
38
35
  this.instance = new this(nestApplicationOptions);
39
36
  return this.instance;
@@ -41,37 +38,41 @@ class NestStarter {
41
38
  /**
42
39
  * 入口
43
40
  */
44
- async start(appRootModule) {
45
- const nestRootModule = nest_root_module_1.NestRootModule.register({
46
- imports: this.registerGlobalModules().concat(appRootModule),
41
+ async start(appModule, rootConfigSchema) {
42
+ const ConfigModule = config_module_1.NestConfigModule.register(rootConfigSchema);
43
+ // 整个项目配置
44
+ const rootConfig = (0, nest_typed_config_1.selectConfig)(ConfigModule, rootConfigSchema);
45
+ // 开启日志
46
+ if (config_module_1.nestStaterConfig.enableLogger)
47
+ utils_1.vipLogger.logByBlank(JSON.stringify(rootConfig, null, 2));
48
+ const rootModule = nest_root_module_1.NestRootModule.register({
49
+ imports: [
50
+ // 配置模块
51
+ ConfigModule,
52
+ // 全局模块
53
+ ...this.registerGlobalModules(),
54
+ // 业务模块
55
+ appModule,
56
+ ],
47
57
  providers: this.getProviders(),
48
58
  });
49
59
  /**
50
60
  * 创建应用
51
61
  */
52
- const app = await core_1.NestFactory.create(nestRootModule, {
62
+ const app = await core_1.NestFactory.create(rootModule, {
53
63
  bufferLogs: true,
54
64
  ...this.nestApplicationOptions,
55
65
  });
56
- this.setGlobalConfig(app);
57
- // 应用启动
58
- await app.listen(this.starterConfig.port);
59
- // 优化日志
60
- void new nest_util_1.NestUtil(app, this.starterConfig).printAppModuleStarterLogger();
61
- }
62
- /**
63
- * 设置全局配置
64
- * @private
65
- */
66
- setGlobalConfig(app) {
67
- // 应用日志
68
- if (this.starterConfig.enableLogger)
66
+ /**
67
+ * 应用日志
68
+ */
69
+ if (config_module_1.nestStaterConfig.enableLogger)
69
70
  nest_logger_1.NestLoggerModule.useLogger(app);
70
71
  // 路由版本功能
71
72
  // apiVersioning必须在swagger之前加载
72
73
  app.enableVersioning({ type: common_1.VersioningType.URI });
73
- if (this.starterConfig.enableSwagger && this.starterConfig.swagger != null) {
74
- new swagger_manager_1.SwaggerManager(this.starterConfig.swagger).register(app);
74
+ if (config_module_1.nestStaterConfig.enableSwagger && config_module_1.nestStaterConfig.swagger != null) {
75
+ new swagger_manager_1.SwaggerManager(config_module_1.nestStaterConfig.swagger).register(app);
75
76
  // TODO 打印swagger相关信息
76
77
  }
77
78
  // 启用关闭钩子(for优雅下线)
@@ -79,7 +80,10 @@ class NestStarter {
79
80
  // 添加健康检查路由
80
81
  app.getHttpAdapter()
81
82
  .get('/health', (_req, res) => res.status(common_1.HttpStatus.OK).send('SERVER OK'));
82
- return app;
83
+ // 应用启动
84
+ await app.listen(config_module_1.nestStaterConfig.port);
85
+ // 优化日志
86
+ void new nest_util_1.NestUtil(app, config_module_1.nestStaterConfig).printAppModuleStarterLogger();
83
87
  }
84
88
  /**
85
89
  * 注册全局模块
@@ -87,18 +91,16 @@ class NestStarter {
87
91
  */
88
92
  registerGlobalModules() {
89
93
  const imports = [];
90
- // 默认为用户注册配置
91
- imports.push(config_module_1.NestConfigModule);
92
- if (this.starterConfig.enableLogger) {
94
+ if (config_module_1.nestStaterConfig.enableLogger) {
93
95
  imports.push(nest_logger_1.NestLoggerModule.register({ consoleLogger: { level: nest_logger_1.LoggerLevelEnum.trace } }));
94
96
  }
95
97
  // 注册Redis模块
96
- if (this.starterConfig.redis != null) {
97
- imports.push(nest_redis_1.NestRedisModule.register(this.starterConfig.redis));
98
+ if (config_module_1.nestStaterConfig.redis != null) {
99
+ imports.push(nest_redis_1.NestRedisModule.register(config_module_1.nestStaterConfig.redis));
98
100
  }
99
101
  // 注册TypeOrm模块
100
- if (this.starterConfig.typeorm != null) {
101
- imports.push(nest_typeorm_1.NestTypeOrmModule.register(this.starterConfig.typeorm));
102
+ if (config_module_1.nestStaterConfig.typeorm != null) {
103
+ imports.push(nest_typeorm_1.TypeOrmModule.forRoot(config_module_1.nestStaterConfig.typeorm));
102
104
  }
103
105
  return imports;
104
106
  }
@@ -135,11 +137,11 @@ class NestStarter {
135
137
  // transform: true,
136
138
  // transformOptions: { enableImplicitConversion: true }, // TODO to delete it
137
139
  // // 是否禁用DTO参数校验错误详情
138
- // disableErrorMessages: this.starterConfig.disableErrorMessages,
140
+ // disableErrorMessages: nestStaterConfig.disableErrorMessages,
139
141
  // // 下面两个class-validator参数用于禁止未知的参数
140
142
  // // whitelist: true,
141
143
  // // forbidNonWhitelisted: true,
142
- // ...(this.starterConfig.disableErrorMessages
144
+ // ...(nestStaterConfig.disableErrorMessages
143
145
  // ? {
144
146
  // exceptionFactory: (_errors): PlatformException => {
145
147
  // return new PlatformException(ErrorCodes.BAD_REQUEST, HttpStatus.BAD_REQUEST)
@@ -158,7 +160,7 @@ class NestStarter {
158
160
  // /**
159
161
  // * 限制请求来源页
160
162
  // */
161
- // ...(this.starterConfig.allowedReferers != null
163
+ // ...(nestStaterConfig.allowedReferers != null
162
164
  // ? [{
163
165
  // provide: APP_GUARD,
164
166
  // useClass: RefererGuard,
@@ -168,4 +170,3 @@ class NestStarter {
168
170
  }
169
171
  }
170
172
  exports.NestStarter = NestStarter;
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC1zdGFydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25lc3Qtc3RhcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBdUU7QUFDdkUsbURBQW9EO0FBQ3BELHVEQUF3RDtBQUN4RCx5Q0FBeUM7QUFDekMsMkNBTXVCO0FBQ3ZCLHVDQUEyRDtBQUUzRCxtREFBb0U7QUFDcEUseURBQW1EO0FBQ25ELDJDQUFzQztBQUN0QywrREFBMEQ7QUFFMUQ7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFPdEI7O09BRUc7SUFDSCxZQUNxQixzQkFBK0M7UUFBL0MsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF5QjtRQVRwRTs7O1dBR0c7UUFDYyxrQkFBYSxHQUFrQixnQ0FBZ0IsQ0FBQTtJQU01RCxDQUFDO0lBRUw7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FDdkIsc0JBQStDO1FBRS9DLE9BQU87UUFDUCxJQUFJLGdDQUFnQixFQUFFLFlBQVk7WUFDaEMsaUJBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQ0FBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUVqRSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSTtZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUE7UUFFbEQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBeUI7UUFDMUMsTUFBTSxjQUFjLEdBQUcsaUNBQWMsQ0FBQyxRQUFRLENBQUM7WUFDN0MsT0FBTyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDM0QsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7U0FDL0IsQ0FBQyxDQUFBO1FBRUY7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
@@ -3,6 +3,7 @@ import { StarterConfig } from './config';
3
3
  export declare class NestUtil {
4
4
  readonly app: INestApplication;
5
5
  readonly starterConfig: StarterConfig;
6
+ private logger;
6
7
  constructor(app: INestApplication, starterConfig: StarterConfig);
7
8
  /**
8
9
  * 是否为开发模式
@@ -12,4 +13,27 @@ export declare class NestUtil {
12
13
  */
13
14
  isDevelopMode(): boolean;
14
15
  printAppModuleStarterLogger(): Promise<void>;
16
+ /**
17
+ * GRPC 日志
18
+ * @private
19
+ */
20
+ private privateGrpcLogger;
21
+ private printAppLogger;
22
+ /**
23
+ * 获取日志模板
24
+ * @private
25
+ */
26
+ private printSwaggerLogger;
27
+ /**
28
+ * http服务日志
29
+ * @private
30
+ */
31
+ private printHttpLogger;
32
+ /**
33
+ * 终端日志模板
34
+ * @param title
35
+ * @param info
36
+ */
37
+ private getLoggerTemplate;
15
38
  }
39
+ //# sourceMappingURL=nest-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest-util.d.ts","sourceRoot":"","sources":["../src/nest-util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAU,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC,qBAAa,QAAQ;IACnB,SAAgB,GAAG,EAAE,gBAAgB,CAAA;IACrC,SAAgB,aAAa,EAAE,aAAa,CAAA;IAC5C,OAAO,CAAC,MAAM,CAAe;gBAEjB,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa;IAK/D;;;;;OAKG;IACI,aAAa,IAAI,OAAO;IAIlB,2BAA2B;IAkBxC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,cAAc;IAWtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;;OAGG;YACW,eAAe;IAgB7B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAS1B"}
package/dist/nest-util.js CHANGED
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NestUtil = void 0;
4
+ const utils_1 = require("@142vip/utils");
4
5
  const common_1 = require("@nestjs/common");
5
6
  const nest_process_1 = require("./nest-process");
6
7
  class NestUtil {
8
+ app;
9
+ starterConfig;
10
+ logger = new common_1.Logger();
7
11
  constructor(app, starterConfig) {
8
12
  this.app = app;
9
13
  this.starterConfig = starterConfig;
@@ -21,29 +25,82 @@ class NestUtil {
21
25
  // 未开启日志
22
26
  if (!this.starterConfig.enableLogger)
23
27
  return;
24
- const logger = new common_1.Logger(NestUtil.name);
25
- const apiUrl = await this.app.getUrl();
26
- logger.log(`🚀 应用启动成功`);
27
- logger.log(`⚒️ 启动环境:${nest_process_1.nestProcess.getNodeEnv()},运行配置:${nest_process_1.nestProcess.getRunEnv()}.config.js`);
28
- // 应用名存在,则打印
29
- const appName = nest_process_1.nestProcess.getAppEnv();
30
- if (appName != null) {
31
- logger.log(`╰┈┈┈┈┈┈┈┈┈┈┈➤ ${appName} 🔥🔥🔥`);
32
- }
33
- logger.log(`🌐 HTTP服务: ${apiUrl}`);
34
- // 如果有全局前缀
35
- if (this.starterConfig.globalPrefix)
36
- logger.log(`🔗 全局路由前缀: ${this.starterConfig.globalPrefix}`);
37
- // 如果有GRPC服务
28
+ // 应用日志
29
+ this.printAppLogger();
30
+ // http 日志
31
+ await this.printHttpLogger();
32
+ // grpc 日志
33
+ this.privateGrpcLogger();
34
+ // swagger日志
35
+ this.printSwaggerLogger();
36
+ }
37
+ /**
38
+ * GRPC 日志
39
+ * @private
40
+ */
41
+ privateGrpcLogger() {
38
42
  // if (this.starterConfig.grpcServer?.url)
39
43
  // logger.log(`🔌 GRPC服务: ${this.starterConfig.grpcServer.url}`)
40
- // 给swagger配置环境
41
- if (this.starterConfig.enableSwagger && this.starterConfig.swagger?.envs != null) {
42
- for (const [envName, apiUrl] of Object.entries(this.starterConfig.swagger.envs)) {
43
- logger.log(`📚 API Swagger文档,${envName}:${apiUrl}:${this.starterConfig.port}/${this.starterConfig.swagger?.docPath}`);
44
- }
44
+ }
45
+ printAppLogger() {
46
+ const appName = nest_process_1.nestProcess.getAppEnv();
47
+ const template = this.getLoggerTemplate('🚀 应用启动成功', {
48
+ nodeEnv: nest_process_1.nestProcess.getNodeEnv(),
49
+ config: `${nest_process_1.nestProcess.getRunEnv()}.config.js`,
50
+ ...(appName == null ? {} : { appName }),
51
+ ...(this.starterConfig.globalPrefix == null ? {} : { globalPrefix: this.starterConfig.globalPrefix }),
52
+ });
53
+ this.logger.log(template);
54
+ }
55
+ /**
56
+ * 获取日志模板
57
+ * @private
58
+ */
59
+ printSwaggerLogger() {
60
+ if (!this.starterConfig.enableSwagger || this.starterConfig.swagger?.envs == null) {
61
+ return;
62
+ }
63
+ // swagger envs 配置 遍历
64
+ for (const [envName, serverUrl] of Object.entries(this.starterConfig.swagger?.envs)) {
65
+ const docPath = this.starterConfig.swagger?.docPath;
66
+ const uiUrl = `${serverUrl}:${this.starterConfig.port}/${docPath}`;
67
+ const apiUrl = `${serverUrl}:${this.starterConfig.port}/${docPath}-json`;
68
+ const template = this.getLoggerTemplate(`📚 Swagger API,${utils_1.VipColor.greenBright(envName)} ${utils_1.VipColor.greenBright('环境')}`, {
69
+ doc: uiUrl,
70
+ JSON: apiUrl,
71
+ });
72
+ this.logger.log(template);
45
73
  }
46
74
  }
75
+ /**
76
+ * http服务日志
77
+ * @private
78
+ */
79
+ async printHttpLogger() {
80
+ const apiUrl = await this.app.getUrl();
81
+ const { local, ip } = await utils_1.vipDetect.getAddress();
82
+ const [localOrigin, ipOrigin] = [local, ip].map((address) => {
83
+ const api = new URL(apiUrl);
84
+ // 替换hostname为地址
85
+ api.hostname = address;
86
+ return api.origin;
87
+ });
88
+ const template = this.getLoggerTemplate(`🌐 HTTP服务`, { local: localOrigin, network: ipOrigin });
89
+ this.logger.log(template);
90
+ }
91
+ /**
92
+ * 终端日志模板
93
+ * @param title
94
+ * @param info
95
+ */
96
+ getLoggerTemplate(title, info) {
97
+ let content = '';
98
+ const maxKeyLength = Math.max(...Object.keys(info).map(key => key.length));
99
+ Object.entries(info).forEach(([key, value]) => {
100
+ content += ` ➜ ${utils_1.vipLodash.upperFirst(key)}:${' '.repeat(maxKeyLength - key.length + 8)}${utils_1.VipColor.greenBright(value)}\n`;
101
+ });
102
+ content = `\n${content}`;
103
+ return `${title}:${content}`;
104
+ }
47
105
  }
48
106
  exports.NestUtil = NestUtil;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25lc3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBeUQ7QUFFekQsaURBQTRDO0FBRTVDLE1BQWEsUUFBUTtJQUluQixZQUFZLEdBQXFCLEVBQUUsYUFBNEI7UUFDN0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUE7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQTtJQUNwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sMEJBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUNwQyxDQUFDO0lBRU0sS0FBSyxDQUFDLDJCQUEyQjtRQUN0QyxRQUFRO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWTtZQUNsQyxPQUFNO1FBRVIsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRXhDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUN0QyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRXZCLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVywwQkFBVyxDQUFDLFVBQVUsRUFBRSxTQUFTLDBCQUFXLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBRTNGLFlBQVk7UUFDWixNQUFNLE9BQU8sR0FBRywwQkFBVyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ3ZDLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLE9BQU8sU0FBUyxDQUFDLENBQUE7UUFDL0MsQ0FBQztRQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ2xDLFVBQVU7UUFDVixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWTtZQUNqQyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBRTdELFlBQVk7UUFDWiwwQ0FBMEM7UUFDMUMsa0VBQWtFO1FBRWxFLGVBQWU7UUFDZixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNqRixLQUFLLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNoRixNQUFNLENBQUMsR0FBRyxDQUFDLG9CQUFvQixPQUFPLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFDdkgsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFyREQsNEJBcURDIn0=
package/dist/pkgs.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export * from '@142vip/nest';
2
+ export * from '@142vip/nest-logger';
3
+ export * from '@142vip/nest-redis';
4
+ export * from '@142vip/nest-typeorm';
5
+ export * from '@nestjs/swagger';
6
+ //# sourceMappingURL=pkgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pkgs.d.ts","sourceRoot":"","sources":["../src/pkgs.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA"}
package/dist/pkgs.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("@142vip/nest"), exports);
18
+ __exportStar(require("@142vip/nest-logger"), exports);
19
+ __exportStar(require("@142vip/nest-redis"), exports);
20
+ __exportStar(require("@142vip/nest-typeorm"), exports);
21
+ __exportStar(require("@nestjs/swagger"), exports);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swagger/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -26,6 +26,9 @@ export interface SwaggerOptions {
26
26
  export declare class SwaggerDocumentBuilder {
27
27
  getConfig(options?: DocumentBuilderOptions): Omit<OpenAPIObject, 'paths'>;
28
28
  }
29
+ /**
30
+ * 管理器
31
+ */
29
32
  export declare class SwaggerManager {
30
33
  private swaggerOptions;
31
34
  constructor(swaggerOptions: SwaggerOptions);
@@ -34,3 +37,8 @@ export declare class SwaggerManager {
34
37
  */
35
38
  register(app: INestApplication): INestApplication;
36
39
  }
40
+ /**
41
+ * Swagger终端日志模板
42
+ */
43
+ export declare function getTemplate(envName: string, uiPath: string, apiUrl: string): string;
44
+ //# sourceMappingURL=swagger.manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger.manager.d.ts","sourceRoot":"","sources":["../../src/swagger/swagger.manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAErF,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,sBAAsB,CAAA;IACvC,aAAa,CAAC,EAAE,oBAAoB,CAAA;CACrC;AAED,qBAAa,sBAAsB;IAC1B,SAAS,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;CA8BjF;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAgB;gBAC1B,cAAc,EAAE,cAAc;IAI1C;;OAEG;IACI,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB;CAOzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMnF"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SwaggerManager = exports.SwaggerDocumentBuilder = void 0;
4
+ exports.getTemplate = getTemplate;
5
+ const utils_1 = require("@142vip/utils");
4
6
  const swagger_1 = require("@nestjs/swagger");
5
7
  class SwaggerDocumentBuilder {
6
8
  getConfig(options) {
@@ -31,7 +33,11 @@ class SwaggerDocumentBuilder {
31
33
  }
32
34
  }
33
35
  exports.SwaggerDocumentBuilder = SwaggerDocumentBuilder;
36
+ /**
37
+ * 管理器
38
+ */
34
39
  class SwaggerManager {
40
+ swaggerOptions;
35
41
  constructor(swaggerOptions) {
36
42
  this.swaggerOptions = swaggerOptions;
37
43
  }
@@ -46,4 +52,13 @@ class SwaggerManager {
46
52
  }
47
53
  }
48
54
  exports.SwaggerManager = SwaggerManager;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhZ2dlci5tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N3YWdnZXIvc3dhZ2dlci5tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUFnRTtBQTRCaEUsTUFBYSxzQkFBc0I7SUFDMUIsU0FBUyxDQUFDLE9BQWdDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLElBQUkseUJBQWUsRUFBRSxDQUFBO1FBQ3RDLE1BQU07UUFDTixJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNwQixPQUFPLEdBQUcsRUFBRSxDQUFBO1FBQ2QsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMxQixRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsQyxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQzlDLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDdEMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ2pELENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZGLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hFLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN6QixDQUFDO0NBQ0Y7QUEvQkQsd0RBK0JDO0FBRUQsTUFBYSxjQUFjO0lBRXpCLFlBQVksY0FBOEI7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLEdBQXFCO1FBQ25DLE1BQU0sY0FBYyxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUNsRyxNQUFNLFFBQVEsR0FBRyx1QkFBYSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUE7UUFDbEUsdUJBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBRWxHLE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQztDQUNGO0FBaEJELHdDQWdCQyJ9
55
+ /**
56
+ * Swagger终端日志模板
57
+ */
58
+ function getTemplate(envName, uiPath, apiUrl) {
59
+ return `📚 Swagger API:${utils_1.VipColor.greenBright(envName)} 环境。
60
+
61
+ ➜ Doc: ${uiPath}
62
+ ➜ JSON: ${apiUrl}
63
+ `;
64
+ }
@@ -0,0 +1,5 @@
1
+ export { IntersectionType as SwaggerIntersectionType } from '@nestjs/swagger';
2
+ export { PartialType as SwaggerPartialType } from '@nestjs/swagger';
3
+ export { PickType as SwaggerPickType } from '@nestjs/swagger';
4
+ export { OmitType as SwaggerOmitType } from '@nestjs/swagger';
5
+ //# sourceMappingURL=swagger.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger.type.d.ts","sourceRoot":"","sources":["../../src/swagger/swagger.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACnE,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SwaggerOmitType = exports.SwaggerPickType = exports.SwaggerPartialType = exports.SwaggerIntersectionType = void 0;
4
+ var swagger_1 = require("@nestjs/swagger");
5
+ Object.defineProperty(exports, "SwaggerIntersectionType", { enumerable: true, get: function () { return swagger_1.IntersectionType; } });
6
+ var swagger_2 = require("@nestjs/swagger");
7
+ Object.defineProperty(exports, "SwaggerPartialType", { enumerable: true, get: function () { return swagger_2.PartialType; } });
8
+ var swagger_3 = require("@nestjs/swagger");
9
+ Object.defineProperty(exports, "SwaggerPickType", { enumerable: true, get: function () { return swagger_3.PickType; } });
10
+ var swagger_4 = require("@nestjs/swagger");
11
+ Object.defineProperty(exports, "SwaggerOmitType", { enumerable: true, get: function () { return swagger_4.OmitType; } });
package/index.js ADDED
@@ -0,0 +1,9 @@
1
+ 'use strict'
2
+ function __export(m) {
3
+ for (const p in m) {
4
+ if (!Object.prototype.hasOwnProperty.call(exports, p))
5
+ exports[p] = m[p]
6
+ }
7
+ }
8
+ exports.__esModule = true
9
+ __export(require('./dist'))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@142vip/nest-starter",
3
- "version": "0.0.1-alpha.1",
3
+ "version": "0.0.1-alpha.10",
4
4
  "private": false,
5
5
  "description": "Nest.js框架下Redis使用最佳实践",
6
6
  "author": "mmdapl <mmdapl@163.com>",
@@ -24,7 +24,7 @@
24
24
  ".": {
25
25
  "types": "./dist/index.d.ts",
26
26
  "import": "./dist/index.js",
27
- "require": "./dist/index.js"
27
+ "require": "./index.js"
28
28
  }
29
29
  },
30
30
  "authorInfo": {
@@ -37,25 +37,30 @@
37
37
  "module": "./dist/index.js",
38
38
  "types": "./dist/index.d.ts",
39
39
  "files": [
40
- "dist"
40
+ "dist",
41
+ "index.js"
41
42
  ],
42
43
  "peerDependencies": {
43
- "@142vip/nest": "0.0.1-alpha.2"
44
+ "@142vip/nest": "0.0.1-alpha.5",
45
+ "@142vip/nest-redis": "0.0.1-alpha.5",
46
+ "@142vip/nest-typeorm": "0.0.1-alpha.8",
47
+ "@142vip/utils": "0.0.1-alpha.46",
48
+ "@142vip/nest-logger": "0.0.1-alpha.3"
44
49
  },
45
50
  "dependencies": {
46
51
  "@nestjs/swagger": "11.2.1",
47
- "nestjs-pino": "4.4.1",
48
- "@142vip/nest-logger": "0.0.1-alpha.1",
49
- "@142vip/nest-redis": "0.0.1-alpha.2",
50
- "@142vip/nest-typeorm": "0.0.1-alpha.1",
51
- "@142vip/utils": "0.0.1-alpha.42"
52
+ "@142vip/nest": "0.0.1-alpha.5",
53
+ "@142vip/nest-logger": "0.0.1-alpha.3",
54
+ "@142vip/nest-typeorm": "0.0.1-alpha.8",
55
+ "@142vip/utils": "0.0.1-alpha.46",
56
+ "@142vip/nest-redis": "0.0.1-alpha.5"
52
57
  },
53
58
  "publishConfig": {
54
59
  "access": "public",
55
60
  "registry": "https://registry.npmjs.org"
56
61
  },
57
62
  "scripts": {
58
- "build": "npx nest build",
63
+ "build": "rm -rf dist && tsc -p tsconfig.json",
59
64
  "typecheck": "tsc --noEmit",
60
65
  "test": "npx jest",
61
66
  "test:coverage": "npx jest --coverage"