@innv/nest-initializer 0.2.1 → 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.
- package/dist/cjs/core/app-initializer.d.ts +79 -0
- package/dist/cjs/core/app-initializer.js +16 -162
- package/dist/cjs/core/app-initializer.js.map +1 -0
- package/dist/cjs/core/auto-discovery.helper.d.ts +10 -0
- package/dist/cjs/core/auto-discovery.helper.js +7 -9
- package/dist/cjs/core/auto-discovery.helper.js.map +1 -0
- package/dist/cjs/core/config-validator.helper.d.ts +2 -0
- package/dist/cjs/core/config-validator.helper.js +1 -7
- package/dist/cjs/core/config-validator.helper.js.map +1 -0
- package/dist/cjs/core/index.d.ts +1 -0
- package/dist/cjs/core/index.js +3 -15
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/features/health.controller.d.ts +11 -0
- package/dist/cjs/features/health.controller.js +11 -54
- package/dist/cjs/features/health.controller.js.map +1 -0
- package/dist/cjs/features/index.d.ts +2 -0
- package/dist/cjs/features/index.js +4 -16
- package/dist/cjs/features/index.js.map +1 -0
- package/dist/cjs/features/metrics/metrics.controller.d.ts +6 -0
- package/dist/cjs/features/metrics/metrics.controller.js +10 -20
- package/dist/cjs/features/metrics/metrics.controller.js.map +1 -0
- package/dist/cjs/features/metrics/metrics.interceptor.d.ts +8 -0
- package/dist/cjs/features/metrics/metrics.interceptor.js +5 -15
- package/dist/cjs/features/metrics/metrics.interceptor.js.map +1 -0
- package/dist/cjs/features/metrics/metrics.module.d.ts +4 -0
- package/dist/cjs/features/metrics/metrics.module.js +3 -7
- package/dist/cjs/features/metrics/metrics.module.js.map +1 -0
- package/dist/cjs/features/metrics/metrics.provider.d.ts +2 -0
- package/dist/cjs/features/metrics/metrics.provider.js +2 -1
- package/dist/cjs/features/metrics/metrics.provider.js.map +1 -0
- package/dist/cjs/features/metrics/metrics.tokens.d.ts +2 -0
- package/dist/cjs/features/metrics/metrics.tokens.js +1 -0
- package/dist/cjs/features/metrics/metrics.tokens.js.map +1 -0
- package/dist/cjs/features/terminus-health-check.module.d.ts +11 -0
- package/dist/cjs/features/terminus-health-check.module.js +3 -7
- package/dist/cjs/features/terminus-health-check.module.js.map +1 -0
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.js +4 -16
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interceptors/response-pattern.interceptor.d.ts +8 -0
- package/dist/cjs/interceptors/response-pattern.interceptor.js +1 -0
- package/dist/cjs/interceptors/response-pattern.interceptor.js.map +1 -0
- package/dist/cjs/plugins/index.d.ts +3 -0
- package/dist/cjs/plugins/index.js +5 -17
- package/dist/cjs/plugins/index.js.map +1 -0
- package/dist/cjs/plugins/rate-limiter.plugin.d.ts +8 -0
- package/dist/cjs/plugins/rate-limiter.plugin.js +3 -4
- package/dist/cjs/plugins/rate-limiter.plugin.js.map +1 -0
- package/dist/cjs/plugins/request-logger.plugin.d.ts +5 -0
- package/dist/cjs/plugins/request-logger.plugin.js +3 -4
- package/dist/cjs/plugins/request-logger.plugin.js.map +1 -0
- package/dist/cjs/plugins/typeorm-migration.plugin.d.ts +6 -0
- package/dist/cjs/plugins/typeorm-migration.plugin.js +1 -9
- package/dist/cjs/plugins/typeorm-migration.plugin.js.map +1 -0
- package/dist/cjs/starters/caching.starter.d.ts +5 -0
- package/dist/cjs/starters/caching.starter.js +1 -4
- package/dist/cjs/starters/caching.starter.js.map +1 -0
- package/dist/cjs/starters/index.d.ts +3 -0
- package/dist/cjs/starters/index.js +5 -17
- package/dist/cjs/starters/index.js.map +1 -0
- package/dist/cjs/starters/mongoose.starter.d.ts +9 -0
- package/dist/cjs/starters/mongoose.starter.js +1 -4
- package/dist/cjs/starters/mongoose.starter.js.map +1 -0
- package/dist/cjs/starters/typeorm.starter.d.ts +12 -0
- package/dist/cjs/starters/typeorm.starter.js +1 -4
- package/dist/cjs/starters/typeorm.starter.js.map +1 -0
- package/dist/esm/core/app-initializer.d.ts +79 -0
- package/dist/esm/core/app-initializer.js +16 -162
- package/dist/esm/core/app-initializer.js.map +1 -0
- package/dist/esm/core/auto-discovery.helper.d.ts +10 -0
- package/dist/esm/core/auto-discovery.helper.js +7 -9
- package/dist/esm/core/auto-discovery.helper.js.map +1 -0
- package/dist/esm/core/config-validator.helper.d.ts +2 -0
- package/dist/esm/core/config-validator.helper.js +1 -7
- package/dist/esm/core/config-validator.helper.js.map +1 -0
- package/dist/esm/core/index.d.ts +1 -0
- package/dist/esm/core/index.js +3 -15
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/features/health.controller.d.ts +11 -0
- package/dist/esm/features/health.controller.js +11 -54
- package/dist/esm/features/health.controller.js.map +1 -0
- package/dist/esm/features/index.d.ts +2 -0
- package/dist/esm/features/index.js +4 -16
- package/dist/esm/features/index.js.map +1 -0
- package/dist/esm/features/metrics/metrics.controller.d.ts +6 -0
- package/dist/esm/features/metrics/metrics.controller.js +10 -20
- package/dist/esm/features/metrics/metrics.controller.js.map +1 -0
- package/dist/esm/features/metrics/metrics.interceptor.d.ts +8 -0
- package/dist/esm/features/metrics/metrics.interceptor.js +5 -15
- package/dist/esm/features/metrics/metrics.interceptor.js.map +1 -0
- package/dist/esm/features/metrics/metrics.module.d.ts +4 -0
- package/dist/esm/features/metrics/metrics.module.js +3 -7
- package/dist/esm/features/metrics/metrics.module.js.map +1 -0
- package/dist/esm/features/metrics/metrics.provider.d.ts +2 -0
- package/dist/esm/features/metrics/metrics.provider.js +2 -1
- package/dist/esm/features/metrics/metrics.provider.js.map +1 -0
- package/dist/esm/features/metrics/metrics.tokens.d.ts +2 -0
- package/dist/esm/features/metrics/metrics.tokens.js +1 -0
- package/dist/esm/features/metrics/metrics.tokens.js.map +1 -0
- package/dist/esm/features/terminus-health-check.module.d.ts +11 -0
- package/dist/esm/features/terminus-health-check.module.js +3 -7
- package/dist/esm/features/terminus-health-check.module.js.map +1 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +4 -16
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interceptors/response-pattern.interceptor.d.ts +8 -0
- package/dist/esm/interceptors/response-pattern.interceptor.js +1 -0
- package/dist/esm/interceptors/response-pattern.interceptor.js.map +1 -0
- package/dist/esm/plugins/index.d.ts +3 -0
- package/dist/esm/plugins/index.js +5 -17
- package/dist/esm/plugins/index.js.map +1 -0
- package/dist/esm/plugins/rate-limiter.plugin.d.ts +8 -0
- package/dist/esm/plugins/rate-limiter.plugin.js +3 -4
- package/dist/esm/plugins/rate-limiter.plugin.js.map +1 -0
- package/dist/esm/plugins/request-logger.plugin.d.ts +5 -0
- package/dist/esm/plugins/request-logger.plugin.js +3 -4
- package/dist/esm/plugins/request-logger.plugin.js.map +1 -0
- package/dist/esm/plugins/typeorm-migration.plugin.d.ts +6 -0
- package/dist/esm/plugins/typeorm-migration.plugin.js +1 -9
- package/dist/esm/plugins/typeorm-migration.plugin.js.map +1 -0
- package/dist/esm/starters/caching.starter.d.ts +5 -0
- package/dist/esm/starters/caching.starter.js +1 -4
- package/dist/esm/starters/caching.starter.js.map +1 -0
- package/dist/esm/starters/index.d.ts +3 -0
- package/dist/esm/starters/index.js +5 -17
- package/dist/esm/starters/index.js.map +1 -0
- package/dist/esm/starters/mongoose.starter.d.ts +9 -0
- package/dist/esm/starters/mongoose.starter.js +1 -4
- package/dist/esm/starters/mongoose.starter.js.map +1 -0
- package/dist/esm/starters/typeorm.starter.d.ts +12 -0
- package/dist/esm/starters/typeorm.starter.js +1 -4
- package/dist/esm/starters/typeorm.starter.js.map +1 -0
- package/dist/types/core/app-initializer.d.ts +2 -152
- package/dist/types/core/auto-discovery.helper.d.ts +1 -6
- package/dist/types/core/config-validator.helper.d.ts +0 -7
- package/dist/types/plugins/typeorm-migration.plugin.d.ts +0 -9
- package/dist/types/starters/caching.starter.d.ts +0 -15
- package/dist/types/starters/mongoose.starter.d.ts +0 -15
- package/dist/types/starters/typeorm.starter.d.ts +0 -7
- package/package.json +25 -30
- 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,173 +36,43 @@ 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
76
|
withResponseMapper<T>(mapper: ResponseMapper<T>): this;
|
|
227
77
|
private listen;
|
|
228
78
|
}
|
|
@@ -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.
|
|
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/
|
|
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/
|
|
13
|
+
"url": "https://github.com/innovare-tech/innv-genesis/issues"
|
|
13
14
|
},
|
|
14
|
-
"homepage": "https://github.com/innovare-tech/nest-initializer
|
|
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
|
-
"
|
|
25
|
-
"
|
|
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
|
-
"
|
|
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
|
+
}
|