@innv/nest-initializer 0.2.0 → 0.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.
Files changed (141) hide show
  1. package/dist/cjs/core/app-initializer.d.ts +79 -0
  2. package/dist/cjs/core/app-initializer.js +16 -162
  3. package/dist/cjs/core/app-initializer.js.map +1 -0
  4. package/dist/cjs/core/auto-discovery.helper.d.ts +10 -0
  5. package/dist/cjs/core/auto-discovery.helper.js +7 -9
  6. package/dist/cjs/core/auto-discovery.helper.js.map +1 -0
  7. package/dist/cjs/core/config-validator.helper.d.ts +2 -0
  8. package/dist/cjs/core/config-validator.helper.js +1 -7
  9. package/dist/cjs/core/config-validator.helper.js.map +1 -0
  10. package/dist/cjs/core/index.d.ts +1 -0
  11. package/dist/cjs/core/index.js +3 -15
  12. package/dist/cjs/core/index.js.map +1 -0
  13. package/dist/cjs/features/health.controller.d.ts +11 -0
  14. package/dist/cjs/features/health.controller.js +11 -54
  15. package/dist/cjs/features/health.controller.js.map +1 -0
  16. package/dist/cjs/features/index.d.ts +2 -0
  17. package/dist/cjs/features/index.js +4 -16
  18. package/dist/cjs/features/index.js.map +1 -0
  19. package/dist/cjs/features/metrics/metrics.controller.d.ts +6 -0
  20. package/dist/cjs/features/metrics/metrics.controller.js +10 -20
  21. package/dist/cjs/features/metrics/metrics.controller.js.map +1 -0
  22. package/dist/cjs/features/metrics/metrics.interceptor.d.ts +8 -0
  23. package/dist/cjs/features/metrics/metrics.interceptor.js +5 -15
  24. package/dist/cjs/features/metrics/metrics.interceptor.js.map +1 -0
  25. package/dist/cjs/features/metrics/metrics.module.d.ts +4 -0
  26. package/dist/cjs/features/metrics/metrics.module.js +3 -7
  27. package/dist/cjs/features/metrics/metrics.module.js.map +1 -0
  28. package/dist/cjs/features/metrics/metrics.provider.d.ts +2 -0
  29. package/dist/cjs/features/metrics/metrics.provider.js +2 -1
  30. package/dist/cjs/features/metrics/metrics.provider.js.map +1 -0
  31. package/dist/cjs/features/metrics/metrics.tokens.d.ts +2 -0
  32. package/dist/cjs/features/metrics/metrics.tokens.js +1 -0
  33. package/dist/cjs/features/metrics/metrics.tokens.js.map +1 -0
  34. package/dist/cjs/features/terminus-health-check.module.d.ts +11 -0
  35. package/dist/cjs/features/terminus-health-check.module.js +3 -7
  36. package/dist/cjs/features/terminus-health-check.module.js.map +1 -0
  37. package/dist/cjs/index.d.ts +6 -0
  38. package/dist/cjs/index.js +4 -16
  39. package/dist/cjs/index.js.map +1 -0
  40. package/dist/cjs/interceptors/response-pattern.interceptor.d.ts +8 -0
  41. package/dist/cjs/interceptors/response-pattern.interceptor.js +1 -0
  42. package/dist/cjs/interceptors/response-pattern.interceptor.js.map +1 -0
  43. package/dist/cjs/plugins/index.d.ts +3 -0
  44. package/dist/cjs/plugins/index.js +5 -17
  45. package/dist/cjs/plugins/index.js.map +1 -0
  46. package/dist/cjs/plugins/rate-limiter.plugin.d.ts +8 -0
  47. package/dist/cjs/plugins/rate-limiter.plugin.js +3 -4
  48. package/dist/cjs/plugins/rate-limiter.plugin.js.map +1 -0
  49. package/dist/cjs/plugins/request-logger.plugin.d.ts +5 -0
  50. package/dist/cjs/plugins/request-logger.plugin.js +3 -4
  51. package/dist/cjs/plugins/request-logger.plugin.js.map +1 -0
  52. package/dist/cjs/plugins/typeorm-migration.plugin.d.ts +6 -0
  53. package/dist/cjs/plugins/typeorm-migration.plugin.js +1 -9
  54. package/dist/cjs/plugins/typeorm-migration.plugin.js.map +1 -0
  55. package/dist/cjs/starters/caching.starter.d.ts +5 -0
  56. package/dist/cjs/starters/caching.starter.js +1 -4
  57. package/dist/cjs/starters/caching.starter.js.map +1 -0
  58. package/dist/cjs/starters/index.d.ts +3 -0
  59. package/dist/cjs/starters/index.js +5 -17
  60. package/dist/cjs/starters/index.js.map +1 -0
  61. package/dist/cjs/starters/mongoose.starter.d.ts +9 -0
  62. package/dist/cjs/starters/mongoose.starter.js +1 -4
  63. package/dist/cjs/starters/mongoose.starter.js.map +1 -0
  64. package/dist/cjs/starters/typeorm.starter.d.ts +12 -0
  65. package/dist/cjs/starters/typeorm.starter.js +1 -4
  66. package/dist/cjs/starters/typeorm.starter.js.map +1 -0
  67. package/dist/esm/core/app-initializer.d.ts +79 -0
  68. package/dist/esm/core/app-initializer.js +16 -162
  69. package/dist/esm/core/app-initializer.js.map +1 -0
  70. package/dist/esm/core/auto-discovery.helper.d.ts +10 -0
  71. package/dist/esm/core/auto-discovery.helper.js +7 -9
  72. package/dist/esm/core/auto-discovery.helper.js.map +1 -0
  73. package/dist/esm/core/config-validator.helper.d.ts +2 -0
  74. package/dist/esm/core/config-validator.helper.js +1 -7
  75. package/dist/esm/core/config-validator.helper.js.map +1 -0
  76. package/dist/esm/core/index.d.ts +1 -0
  77. package/dist/esm/core/index.js +3 -15
  78. package/dist/esm/core/index.js.map +1 -0
  79. package/dist/esm/features/health.controller.d.ts +11 -0
  80. package/dist/esm/features/health.controller.js +11 -54
  81. package/dist/esm/features/health.controller.js.map +1 -0
  82. package/dist/esm/features/index.d.ts +2 -0
  83. package/dist/esm/features/index.js +4 -16
  84. package/dist/esm/features/index.js.map +1 -0
  85. package/dist/esm/features/metrics/metrics.controller.d.ts +6 -0
  86. package/dist/esm/features/metrics/metrics.controller.js +10 -20
  87. package/dist/esm/features/metrics/metrics.controller.js.map +1 -0
  88. package/dist/esm/features/metrics/metrics.interceptor.d.ts +8 -0
  89. package/dist/esm/features/metrics/metrics.interceptor.js +5 -15
  90. package/dist/esm/features/metrics/metrics.interceptor.js.map +1 -0
  91. package/dist/esm/features/metrics/metrics.module.d.ts +4 -0
  92. package/dist/esm/features/metrics/metrics.module.js +3 -7
  93. package/dist/esm/features/metrics/metrics.module.js.map +1 -0
  94. package/dist/esm/features/metrics/metrics.provider.d.ts +2 -0
  95. package/dist/esm/features/metrics/metrics.provider.js +2 -1
  96. package/dist/esm/features/metrics/metrics.provider.js.map +1 -0
  97. package/dist/esm/features/metrics/metrics.tokens.d.ts +2 -0
  98. package/dist/esm/features/metrics/metrics.tokens.js +1 -0
  99. package/dist/esm/features/metrics/metrics.tokens.js.map +1 -0
  100. package/dist/esm/features/terminus-health-check.module.d.ts +11 -0
  101. package/dist/esm/features/terminus-health-check.module.js +3 -7
  102. package/dist/esm/features/terminus-health-check.module.js.map +1 -0
  103. package/dist/esm/index.d.ts +6 -0
  104. package/dist/esm/index.js +4 -16
  105. package/dist/esm/index.js.map +1 -0
  106. package/dist/esm/interceptors/response-pattern.interceptor.d.ts +8 -0
  107. package/dist/esm/interceptors/response-pattern.interceptor.js +1 -0
  108. package/dist/esm/interceptors/response-pattern.interceptor.js.map +1 -0
  109. package/dist/esm/plugins/index.d.ts +3 -0
  110. package/dist/esm/plugins/index.js +5 -17
  111. package/dist/esm/plugins/index.js.map +1 -0
  112. package/dist/esm/plugins/rate-limiter.plugin.d.ts +8 -0
  113. package/dist/esm/plugins/rate-limiter.plugin.js +3 -4
  114. package/dist/esm/plugins/rate-limiter.plugin.js.map +1 -0
  115. package/dist/esm/plugins/request-logger.plugin.d.ts +5 -0
  116. package/dist/esm/plugins/request-logger.plugin.js +3 -4
  117. package/dist/esm/plugins/request-logger.plugin.js.map +1 -0
  118. package/dist/esm/plugins/typeorm-migration.plugin.d.ts +6 -0
  119. package/dist/esm/plugins/typeorm-migration.plugin.js +1 -9
  120. package/dist/esm/plugins/typeorm-migration.plugin.js.map +1 -0
  121. package/dist/esm/starters/caching.starter.d.ts +5 -0
  122. package/dist/esm/starters/caching.starter.js +1 -4
  123. package/dist/esm/starters/caching.starter.js.map +1 -0
  124. package/dist/esm/starters/index.d.ts +3 -0
  125. package/dist/esm/starters/index.js +5 -17
  126. package/dist/esm/starters/index.js.map +1 -0
  127. package/dist/esm/starters/mongoose.starter.d.ts +9 -0
  128. package/dist/esm/starters/mongoose.starter.js +1 -4
  129. package/dist/esm/starters/mongoose.starter.js.map +1 -0
  130. package/dist/esm/starters/typeorm.starter.d.ts +12 -0
  131. package/dist/esm/starters/typeorm.starter.js +1 -4
  132. package/dist/esm/starters/typeorm.starter.js.map +1 -0
  133. package/dist/types/core/app-initializer.d.ts +3 -153
  134. package/dist/types/core/auto-discovery.helper.d.ts +1 -6
  135. package/dist/types/core/config-validator.helper.d.ts +0 -7
  136. package/dist/types/plugins/typeorm-migration.plugin.d.ts +0 -9
  137. package/dist/types/starters/caching.starter.d.ts +0 -15
  138. package/dist/types/starters/mongoose.starter.d.ts +0 -15
  139. package/dist/types/starters/typeorm.starter.d.ts +0 -7
  140. package/package.json +25 -30
  141. package/README.md +0 -257
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongoose.starter.js","sourceRoot":"","sources":["../../../src/starters/mongoose.starter.ts"],"names":[],"mappings":";;AAuBA,sDAiBC;AAxCD,2CAA+C;AAC/C,+CAAyE;AAsBzE,SAAgB,qBAAqB,CAAC,UAAkC,EAAE;IACxE,MAAM,EAAE,SAAS,GAAG,WAAW,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAElE,MAAM,qBAAqB,GAAG,yBAAc,CAAC,YAAY,CAAC;QACxD,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,CAAC,sBAAa,CAAC;QAEvB,UAAU,EAAE,CAAC,aAA4B,EAAyB,EAAE,CAAC,CAAC;YACpE,GAAG,EAAE,aAAa,CAAC,GAAG,CAAS,SAAS,CAAC;YACzC,GAAG,eAAe;SACnB,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { TypeOrmModuleOptions } from '@nestjs/typeorm';
2
+ import { AppInitializerPlugin } from '../core';
3
+ export interface TypeOrmStarterOptions {
4
+ autoLoadEntities?: boolean;
5
+ runMigrationsOnStartup?: boolean;
6
+ databaseUrlEnvKey?: string;
7
+ typeOrmOptions?: Omit<TypeOrmModuleOptions, 'url' | 'autoLoadEntities' | 'synchronize'>;
8
+ }
9
+ export declare function createTypeOrmStarter(options?: TypeOrmStarterOptions): {
10
+ module: import("@nestjs/common").DynamicModule;
11
+ plugins: AppInitializerPlugin[];
12
+ };
@@ -4,10 +4,6 @@ exports.createTypeOrmStarter = createTypeOrmStarter;
4
4
  const config_1 = require("@nestjs/config");
5
5
  const typeorm_1 = require("@nestjs/typeorm");
6
6
  const plugins_1 = require("../plugins");
7
- /**
8
- * Cria o módulo dinâmico para o "Starter" de TypeORM.
9
- * Esta função constrói toda a configuração necessária para o TypeOrmModule.
10
- */
11
7
  function createTypeOrmStarter(options = {}) {
12
8
  const { autoLoadEntities = true, runMigrationsOnStartup = false, databaseUrlEnvKey = 'DATABASE_URL', typeOrmOptions = {}, } = options;
13
9
  const typeOrmDynamicModule = typeorm_1.TypeOrmModule.forRootAsync({
@@ -29,3 +25,4 @@ function createTypeOrmStarter(options = {}) {
29
25
  plugins: plugins,
30
26
  };
31
27
  }
28
+ //# sourceMappingURL=typeorm.starter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeorm.starter.js","sourceRoot":"","sources":["../../../src/starters/typeorm.starter.ts"],"names":[],"mappings":";;AAuBA,oDA6BC;AApDD,2CAA+C;AAC/C,6CAAsE;AAGtE,wCAAoD;AAmBpD,SAAgB,oBAAoB,CAAC,UAAiC,EAAE;IACtE,MAAM,EACJ,gBAAgB,GAAG,IAAI,EACvB,sBAAsB,GAAG,KAAK,EAC9B,iBAAiB,GAAG,cAAc,EAClC,cAAc,GAAG,EAAE,GACpB,GAAG,OAAO,CAAC;IAEZ,MAAM,oBAAoB,GAAG,uBAAa,CAAC,YAAY,CAAC;QACtD,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,CAAC,sBAAa,CAAC;QACvB,UAAU,EAAE,CAAC,aAA4B,EAAwB,EAAE,CACjE,CAAC;YACC,GAAG,EAAE,aAAa,CAAC,GAAG,CAAS,iBAAiB,CAAC;YACjD,gBAAgB,EAAE,gBAAgB;YAClC,WAAW,EAAE,KAAK;YAClB,GAAG,cAAc;SAClB,CAAyB;KAC7B,CAAC,CAAC;IAEH,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,gCAAsB,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,MAAM,EAAE,oBAAoB;QAC5B,OAAO,EAAE,OAAO;KACjB,CAAC;AACJ,CAAC"}
@@ -1,3 +1,4 @@
1
+ import 'reflect-metadata';
1
2
  import { CanActivate, ExceptionFilter, INestApplication, NestInterceptor, PipeTransform, Type, ValidationPipeOptions, VersioningOptions } from '@nestjs/common';
2
3
  import { CorsOptions } from '@nestjs/common/interfaces/external/cors-options.interface';
3
4
  import { AbstractHttpAdapter } from '@nestjs/core';
@@ -5,27 +6,13 @@ import { SwaggerCustomOptions, SwaggerDocumentOptions } from '@nestjs/swagger';
5
6
  import { TerminusHealthCheckOptions } from '../features';
6
7
  import { CachingStarterOptions, MongooseStarterOptions, TypeOrmStarterOptions } from '../starters';
7
8
  import { ResponseMapper } from '../interceptors/response-pattern.interceptor';
8
- /**
9
- * Interface que todos os plugins do AppInitializer devem implementar.
10
- */
11
9
  export interface AppInitializerPlugin {
12
- /**
13
- * Método que será executado durante a inicialização para aplicar a lógica do plugin.
14
- * Pode ser síncrono ou assíncrono.
15
- * @param app A instância da aplicação NestJS (INestApplication).
16
- */
17
10
  apply(app: INestApplication): Promise<void> | void;
18
11
  }
19
- /**
20
- * Representa uma tag na documentação Swagger (OpenAPI).
21
- */
22
12
  export type SwaggerDocumentTags = {
23
13
  name: string;
24
14
  description?: string;
25
15
  };
26
- /**
27
- * Opções para a configuração do Swagger (OpenAPI).
28
- */
29
16
  export type SwaggerOptions = {
30
17
  title: string;
31
18
  description: string;
@@ -35,14 +22,7 @@ export type SwaggerOptions = {
35
22
  documentOptions?: SwaggerDocumentOptions;
36
23
  customOptions?: SwaggerCustomOptions;
37
24
  };
38
- /**
39
- * Assinatura da função de callback usada para configurar o inicializador.
40
- * @param app A instância do AppInitializer a ser configurada.
41
- */
42
25
  type AppConfigurator<T extends INestApplication> = (app: AppInitializer<T>) => void;
43
- /**
44
- * Uma classe fluente (Builder) para inicializar uma aplicação NestJS de forma declarativa.
45
- */
46
26
  export declare class AppInitializer<T extends INestApplication = INestApplication> {
47
27
  private app;
48
28
  private readonly module;
@@ -56,174 +36,44 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
56
36
  private readonly setupFunctions;
57
37
  private readonly plugins;
58
38
  private readonly featureModules;
59
- private advancedSwaggerUiOptions?;
60
39
  private autoDiscoveredComponents?;
61
40
  private readonly globalProviders;
41
+ private readonly nexusClientProviders;
62
42
  private readonly globalInterceptors;
63
43
  private readonly factoryGeneratedControllers;
64
44
  private constructor();
65
- /**
66
- * Aplica um conjunto de configurações padrão recomendadas para o ambiente de desenvolvimento.
67
- * Inclui Swagger e um logger de requisições.
68
- * @param swaggerOptions Opções para customizar a documentação Swagger.
69
- */
70
45
  useDevelopmentDefaults(swaggerOptions: Omit<SwaggerOptions, 'path'>): this;
71
- /**
72
- * Aplica um conjunto de configurações padrão recomendadas para o ambiente de produção.
73
- * Inclui Helmet, compressão, graceful shutdown e um rate limiter básico.
74
- */
75
46
  useProductionDefaults(): this;
76
- /**
77
- * Aplica um bloco de configurações de forma condicional.
78
- * @param condition A condição booleana. Se for `true`, o callback de configuração será executado.
79
- * @param configure A função de callback que recebe o builder para aplicar as configurações.
80
- */
81
47
  when(condition: boolean, configure: (builder: this) => void): this;
82
48
  withHealthCheck(options: TerminusHealthCheckOptions): this;
83
- /**
84
- * Habilita a coleta e exposição de métricas no padrão Prometheus
85
- * no endpoint /metrics. Inclui métricas padrão do Node.js
86
- * e métricas de latência de requisições HTTP.
87
- */
88
49
  withMetrics(): this;
89
50
  static bootstrap<T extends INestApplication = INestApplication>(module: Type, configurator: AppConfigurator<T>): Promise<void>;
90
51
  static bootstrap<T extends INestApplication = INestApplication>(module: Type, adapter: AbstractHttpAdapter, configurator: AppConfigurator<T>): Promise<void>;
91
- /**
92
- * Define a porta em que a aplicação vai rodar.
93
- * @param port O número da porta.
94
- */
95
52
  onPort(port: number): this;
96
- /**
97
- * Registra um plugin para ser executado durante a inicialização.
98
- * @param plugin Uma instância de um objeto que implementa a interface AppInitializerPlugin.
99
- */
100
53
  withPlugin(plugin: AppInitializerPlugin): this;
101
- /**
102
- * Habilita e configura o versionamento da API.
103
- * @param options As opções de versionamento do NestJS.
104
- */
105
54
  withVersioning(options: VersioningOptions): this;
106
- /**
107
- * Define um prefixo global para todas as rotas da aplicação (ex: /api/v1).
108
- * @param prefix O prefixo a ser aplicado.
109
- */
110
55
  withGlobalPrefix(prefix: string): this;
111
- /**
112
- * Habilita e configura o Cross-Origin Resource Sharing (CORS).
113
- * @param options As opções de configuração do CORS.
114
- */
115
56
  withCors(options?: CorsOptions): this;
116
- /**
117
- * Adiciona o ValidationPipe global com opções customizadas.
118
- * Esta é a forma recomendada de habilitar a validação padrão.
119
- * @param options Opções de configuração para o ValidationPipe.
120
- */
121
57
  withValidationPipe(options?: ValidationPipeOptions): this;
122
- /**
123
- * Registra um Pipe global customizado (ex: um pipe de parsing).
124
- * O pipe participará da Injeção de Dependência.
125
- * @param pipe A *classe* do pipe a ser registrada.
126
- */
127
58
  useGlobalPipe(pipe: Type<PipeTransform>): this;
128
- /**
129
- * Registra um Filtro de Exceção global (ex: HttpExceptionFilter).
130
- * O filtro participará da Injeção de Dependência.
131
- * @param filter A *classe* do filtro a ser registrada.
132
- */
133
59
  useGlobalFilter(filter: Type<ExceptionFilter>): this;
134
- /**
135
- * Registra um Guard global (ex: JwtAuthGuard).
136
- * O guard participará da Injeção de Dependência.
137
- * @param guard A *classe* do guard a ser registrada.
138
- */
139
60
  useGlobalGuard(guard: Type<CanActivate>): this;
140
- /**
141
- * Registra um Interceptor global (ex: LoggingInterceptor).
142
- * O interceptor participará da Injeção de Dependência.
143
- * @param interceptor A *classe* do interceptor a ser registrada.
144
- */
145
61
  useGlobalInterceptor(interceptor: Type<NestInterceptor>): this;
146
- /**
147
- * Registra o ClassSerializerInterceptor globalmente.
148
- * Essencial para transformações de DTO (@Exclude, @Expose).
149
- * Ele automaticamente recebe o Reflector via DI.
150
- */
151
62
  withClassSerializer(): this;
152
- /**
153
- * Habilita e configura a documentação da API via Swagger (OpenAPI).
154
- * @param options As opções para construir a documentação.
155
- */
156
63
  withSwagger(options: SwaggerOptions): this;
157
- /**
158
- * Aplica customizações avançadas à interface do Swagger UI.
159
- * Isso pode incluir temas, scripts e outras configurações visuais.
160
- * Por padrão, aplica um tema escuro e algumas configurações de layout.
161
- */
162
- withAdvancedSwaggerUI(): this;
163
- /**
164
- * Habilita os 'shutdown hooks' do NestJS para um desligamento gracioso.
165
- */
166
64
  withGracefulShutdown(): this;
167
- /**
168
- * Adiciona o middleware de segurança Helmet com configurações padrão.
169
- */
170
65
  useHelmet(): this;
171
- /**
172
- * Adiciona o middleware de compressão (gzip) para as respostas.
173
- */
174
66
  enableCompression(): this;
175
- /**
176
- * Carrega e valida as variáveis de ambiente na inicialização
177
- * usando um schema de validação (classe com decoradores class-validator).
178
- * Se a validação falhar, a aplicação não será iniciada.
179
- * @param schema A classe de schema para validar (ex: EnvironmentVariables).
180
- */
181
67
  withValidatedConfig<T extends object>(schema: Type<T>): this;
182
- /**
183
- * Configura e registra automaticamente o TypeOrmModule (Estilo "Starter").
184
- * @param options Opções para o "Starter" de TypeORM.
185
- */
186
68
  withTypeOrm(options?: TypeOrmStarterOptions): this;
187
- /**
188
- * Configura e registra automaticamente o MongooseModule (Estilo "Starter").
189
- * Usa a configuração global (de .withValidatedConfig) para se conectar
190
- * ao MongoDB e descobre schemas automaticamente.
191
- *
192
- * @param options Opções para o "Starter" de Mongoose.
193
- */
194
69
  withMongoose(options?: MongooseStarterOptions): this;
195
- /**
196
- * Configura e registra automaticamente o CacheModule (Estilo "Starter").
197
- * Usa a configuração global (de .withValidatedConfig) para se conectar
198
- * ao Redis e torna o cache globalmente disponível.
199
- *
200
- * @param options Opções para o "Starter" de Cache.
201
- */
202
70
  withCaching(options?: CachingStarterOptions): this;
203
- /**
204
- * Retorna a instância da aplicação NestJS (INestApplication) após a inicialização.
205
- * @throws Error se a aplicação ainda não foi inicializada.
206
- */
207
71
  getApp(): T;
208
- /**
209
- * Habilita a descoberta e registro automático de Providers e Controllers.
210
- * Varre o projeto em busca de classes com @Injectable() e @Controller()
211
- * e as adiciona ao módulo raiz.
212
- * @param options Opções para configurar a descoberta.
213
- */
214
72
  withAutoDiscovery(options: {
215
73
  basePath: string;
216
74
  }): this;
217
- /**
218
- * Adiciona um Interceptor global diretamente (instância).
219
- * @param interceptor
220
- */
221
75
  addGlobalInterceptor(interceptor: NestInterceptor): this;
222
- /**
223
- * Adiciona um ResponseMapper global para padronizar respostas.
224
- * @param mapper
225
- */
226
- withResponseMapper(mapper: ResponseMapper<T>): this;
76
+ withResponseMapper<T>(mapper: ResponseMapper<T>): this;
227
77
  private listen;
228
78
  }
229
79
  export {};
@@ -3,13 +3,8 @@ import { Reflector } from '@nestjs/core';
3
3
  interface DiscoveredComponents {
4
4
  providers: Type[];
5
5
  controllers: Type[];
6
+ nexusClients: Type[];
6
7
  }
7
8
  type RequireFn = (id: string) => any;
8
- /**
9
- * Descobre componentes NestJS (Providers e Controllers) em um diretório.
10
- * @param basePath O diretório raiz para a varredura.
11
- * @param reflectorInst Uma instância do Reflector.
12
- * @param requireFn A função 'require' a ser usada (padrão: Node's require).
13
- */
14
9
  export declare function discoverComponents(basePath: string, reflectorInst: Reflector, requireFn?: RequireFn): DiscoveredComponents;
15
10
  export {};
@@ -1,9 +1,2 @@
1
1
  import { Type } from '@nestjs/common';
2
- /**
3
- * Valida um objeto de configuração (ex: process.env) contra uma classe de schema.
4
- * Se a validação falhar, lança um erro detalhado.
5
- * @param config O objeto de configuração a ser validado (geralmente process.env).
6
- * @param schema A classe de schema com decoradores do class-validator.
7
- * @returns O objeto de configuração validado e transformado.
8
- */
9
2
  export declare function validateConfig<T extends object>(config: Record<string, any>, schema: Type<T>): T;
@@ -1,15 +1,6 @@
1
1
  import { INestApplication } from '@nestjs/common';
2
2
  import { AppInitializerPlugin } from '../core';
3
- /**
4
- * Um plugin do AppInitializer que executa automaticamente as migrations
5
- * do TypeORM na inicialização da aplicação.
6
- */
7
3
  export declare class TypeOrmMigrationPlugin implements AppInitializerPlugin {
8
4
  private readonly logger;
9
- /**
10
- * Método 'apply' que será chamado pelo AppInitializer durante o bootstrap.
11
- * Este método é assíncrono para poder aguardar a conclusão das migrations.
12
- * @param app A instância da aplicação NestJS.
13
- */
14
5
  apply(app: INestApplication): Promise<void>;
15
6
  }
@@ -1,20 +1,5 @@
1
- /**
2
- * Opções para o "Starter" de Cache (Redis).
3
- */
4
1
  export interface CachingStarterOptions {
5
- /**
6
- * Chave do .env que contém a URL de conexão com o Redis.
7
- * (Padrão: 'REDIS_URL')
8
- */
9
2
  redisUrlEnvKey?: string;
10
- /**
11
- * Tempo de vida (TTL) padrão para os itens em cache, em segundos.
12
- * (Padrão: 300 segundos / 5 minutos)
13
- */
14
3
  defaultTtlInSeconds?: number;
15
4
  }
16
- /**
17
- * Cria o módulo dinâmico para o "Starter" de Cache.
18
- * Configura o CacheModule para ser global e usar o Redis.
19
- */
20
5
  export declare function createCachingStarter(options?: CachingStarterOptions): import("@nestjs/common").DynamicModule;
@@ -1,23 +1,8 @@
1
1
  import { MongooseModuleOptions } from '@nestjs/mongoose';
2
- /**
3
- * Opções para o "Starter" de Mongoose (MongoDB).
4
- */
5
2
  export interface MongooseStarterOptions {
6
- /**
7
- * Chave do .env que contém a URI de conexão com o MongoDB.
8
- * (Padrão: 'MONGO_URI')
9
- */
10
3
  uriEnvKey?: string;
11
- /**
12
- * Permite sobrescrever qualquer outra opção de configuração do Mongoose
13
- * (ex: { retryAttempts: 2 }).
14
- */
15
4
  mongooseOptions?: Omit<MongooseModuleOptions, 'uri'>;
16
5
  }
17
- /**
18
- * Cria o módulo dinâmico para o "Starter" de Mongoose.
19
- * Configura o MongooseModule para ser global e usar a URI do .env.
20
- */
21
6
  export declare function createMongooseStarter(options?: MongooseStarterOptions): {
22
7
  module: import("@nestjs/common").DynamicModule;
23
8
  plugins: never[];
@@ -1,18 +1,11 @@
1
1
  import { TypeOrmModuleOptions } from '@nestjs/typeorm';
2
2
  import { AppInitializerPlugin } from '../core';
3
- /**
4
- * Opções para o "Starter" de TypeORM.
5
- */
6
3
  export interface TypeOrmStarterOptions {
7
4
  autoLoadEntities?: boolean;
8
5
  runMigrationsOnStartup?: boolean;
9
6
  databaseUrlEnvKey?: string;
10
7
  typeOrmOptions?: Omit<TypeOrmModuleOptions, 'url' | 'autoLoadEntities' | 'synchronize'>;
11
8
  }
12
- /**
13
- * Cria o módulo dinâmico para o "Starter" de TypeORM.
14
- * Esta função constrói toda a configuração necessária para o TypeOrmModule.
15
- */
16
9
  export declare function createTypeOrmStarter(options?: TypeOrmStarterOptions): {
17
10
  module: import("@nestjs/common").DynamicModule;
18
11
  plugins: AppInitializerPlugin[];
package/package.json CHANGED
@@ -1,17 +1,18 @@
1
1
  {
2
2
  "name": "@innv/nest-initializer",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Uma plataforma fluente e opinativa para inicializar e configurar aplicações NestJS com as melhores práticas.",
5
5
  "author": "Innovare",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/innovare-tech/nest-initializer.git"
9
+ "url": "git+https://github.com/innovare-tech/innv-genesis.git",
10
+ "directory": "packages/nest-initializer"
10
11
  },
11
12
  "bugs": {
12
- "url": "https://github.com/innovare-tech/nest-initializer/issues"
13
+ "url": "https://github.com/innovare-tech/innv-genesis/issues"
13
14
  },
14
- "homepage": "https://github.com/innovare-tech/nest-initializer/issues#readme",
15
+ "homepage": "https://github.com/innovare-tech/innv-genesis/tree/main/packages/nest-initializer#readme",
15
16
  "main": "dist/cjs/index.js",
16
17
  "module": "dist/esm/index.js",
17
18
  "types": "dist/types/index.d.ts",
@@ -21,19 +22,8 @@
21
22
  "engines": {
22
23
  "node": ">=18.0.0"
23
24
  },
24
- "scripts": {
25
- "test": "jest --coverage",
26
- "test:watch": "jest --watch",
27
- "build:clean": "rimraf dist",
28
- "build:cjs": "tsc -p tsconfig.build-cjs.json",
29
- "build:esm": "tsc -p tsconfig.build-esm.json",
30
- "build:types": "tsc -p tsconfig.build-types.json",
31
- "build": "npm run build:clean && npm run build:cjs && npm run build:esm && npm run build:types",
32
- "lint": "eslint .",
33
- "lint:fix": "eslint . --fix",
34
- "format": "prettier --write \"{src,test}/**/*.ts\"",
35
- "prepare": "husky install",
36
- "prepublishOnly": "npm run lint && npm test && npm run build"
25
+ "publishConfig": {
26
+ "access": "public"
37
27
  },
38
28
  "dependencies": {
39
29
  "cache-manager-redis-store": "3.0.1",
@@ -41,7 +31,9 @@
41
31
  "glob": "11.0.3",
42
32
  "helmet": "8.1.0",
43
33
  "morgan": "^1.10.1",
44
- "zod": "4.1.12"
34
+ "tslib": "^2.6.3",
35
+ "zod": "4.1.12",
36
+ "@innv/nexus": "0.2.0"
45
37
  },
46
38
  "peerDependencies": {
47
39
  "@nestjs/axios": "^4.0.1",
@@ -106,7 +98,6 @@
106
98
  "devDependencies": {
107
99
  "@commitlint/cli": "^19.3.0",
108
100
  "@commitlint/config-conventional": "^19.2.2",
109
- "@eslint/js": "^9.38.0",
110
101
  "@nestjs/axios": "^4.0.1",
111
102
  "@nestjs/cache-manager": "^3.0.1",
112
103
  "@nestjs/common": "^11.1.6",
@@ -119,18 +110,14 @@
119
110
  "@nestjs/testing": "^11.1.7",
120
111
  "@nestjs/typeorm": "^11.0.0",
121
112
  "@types/compression": "^1.7.5",
113
+ "@types/express": "^5.0.5",
114
+ "@types/express-rate-limit": "^6.0.2",
122
115
  "@types/jest": "^29.5.14",
123
116
  "@types/morgan": "^1.9.10",
124
117
  "@types/node": "^18.19.3",
125
- "@typescript-eslint/eslint-plugin": "^7.10.0",
126
- "@typescript-eslint/parser": "^7.10.0",
127
118
  "class-transformer": "^0.5.1",
128
119
  "class-validator": "^0.14.2",
129
- "eslint": "^8.57.0",
130
- "eslint-config-prettier": "^9.1.0",
131
- "eslint-plugin-prettier": "^5.1.3",
132
120
  "express-rate-limit": "^8.1.0",
133
- "globals": "^15.0.0",
134
121
  "husky": "^9.0.11",
135
122
  "jest": "^29.7.0",
136
123
  "prettier": "^3.2.5",
@@ -139,9 +126,7 @@
139
126
  "rimraf": "^5.0.7",
140
127
  "rxjs": "^7.8.1",
141
128
  "ts-jest": "^29.4.5",
142
- "typeorm": "^0.3.27",
143
- "typescript": "^5.4.5",
144
- "typescript-eslint": "^8.46.2"
129
+ "typeorm": "^0.3.27"
145
130
  },
146
131
  "keywords": [
147
132
  "nestjs",
@@ -155,5 +140,15 @@
155
140
  "starter",
156
141
  "actuator",
157
142
  "auto-discovery"
158
- ]
159
- }
143
+ ],
144
+ "scripts": {
145
+ "test": "jest --coverage",
146
+ "test:watch": "jest --watch",
147
+ "build:clean": "rimraf dist",
148
+ "build:cjs": "tsc -p tsconfig.build-cjs.json",
149
+ "build:esm": "tsc -p tsconfig.build-esm.json",
150
+ "build:types": "tsc -p tsconfig.build-types.json",
151
+ "build": "npm run build:clean && npm run build:cjs && npm run build:esm && npm run build:types",
152
+ "format": "prettier --write \"{src,test}/**/*.ts\""
153
+ }
154
+ }