@innv/nest-initializer 0.3.0 → 0.4.1
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/README.md +259 -0
- package/dist/cjs/core/app-initializer.d.ts +3 -0
- package/dist/cjs/core/app-initializer.js +12 -1
- package/dist/cjs/core/app-initializer.js.map +1 -1
- package/dist/cjs/features/index-page.factory.d.ts +8 -0
- package/dist/cjs/features/index-page.factory.js +30 -0
- package/dist/cjs/features/index-page.factory.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/core/app-initializer.d.ts +3 -0
- package/dist/esm/core/app-initializer.js +12 -1
- package/dist/esm/core/app-initializer.js.map +1 -1
- package/dist/esm/features/index-page.factory.d.ts +8 -0
- package/dist/esm/features/index-page.factory.js +30 -0
- package/dist/esm/features/index-page.factory.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/types/core/app-initializer.d.ts +3 -0
- package/dist/types/features/index-page.factory.d.ts +8 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +2 -1
package/README.md
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
# @innv/nest-initializer 🚀
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@innv/nest-initializer)
|
|
4
|
+
[](https://github.com/innovare-tech/nest-initializer/actions/workflows/ci.yml)
|
|
5
|
+
[](https://codecov.io/gh/innovare-tech/nest-initializer)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
> **Uma plataforma fluente, opinativa e "estilo Spring Boot" para inicializar e configurar suas aplicações NestJS com as melhores práticas.**
|
|
9
|
+
|
|
10
|
+
Diga adeus ao boilerplate repetitivo no `main.ts` e `AppModule`!
|
|
11
|
+
`@innv/nest-initializer` oferece uma **API Builder elegante** para configurar tudo — desde validação de variáveis de ambiente até auto-discovery de componentes e observabilidade pronta para produção.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ✨ Por que usar `@innv/nest-initializer`?
|
|
16
|
+
|
|
17
|
+
- **API Fluente e Declarativa:** Configure sua aplicação de forma encadeada e legível no `main.ts`.
|
|
18
|
+
- **Convenção sobre Configuração:** Starters inteligentes para TypeORM, Mongoose e Cache que se auto-configuram.
|
|
19
|
+
- **Configuração Segura (Fail-Fast):** Valide variáveis de ambiente com `class-validator`. Sem mais erros em runtime!
|
|
20
|
+
- **Auto-Discovery ("Component Scanning"):** Detecta e registra automaticamente `@Injectable()` e `@Controller()`.
|
|
21
|
+
- **Produção Pronta por Padrão:**
|
|
22
|
+
- Presets para desenvolvimento e produção (`useDevelopmentDefaults`, `useProductionDefaults`);
|
|
23
|
+
- Helmet, Compressão, Graceful Shutdown e Métricas Prometheus (`.withMetrics`);
|
|
24
|
+
- Health Checks (`.withHealthCheck`).
|
|
25
|
+
- **Extensível:** Sistema de Plugins (`.withPlugin`) para lógicas customizadas.
|
|
26
|
+
- **Flexível:** Suporte nativo a Express e Fastify.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 📦 Instalação
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Com pnpm (recomendado)
|
|
34
|
+
pnpm add @innv/nest-initializer @nestjs/config class-validator class-transformer reflect-metadata
|
|
35
|
+
pnpm add -D @types/compression @types/helmet
|
|
36
|
+
|
|
37
|
+
# Com npm
|
|
38
|
+
npm install @innv/nest-initializer @nestjs/config class-validator class-transformer reflect-metadata
|
|
39
|
+
npm install --save-dev @types/compression @types/helmet
|
|
40
|
+
|
|
41
|
+
# Com yarn
|
|
42
|
+
yarn add @innv/nest-initializer @nestjs/config class-validator class-transformer reflect-metadata
|
|
43
|
+
yarn add --dev @types/compression @types/helmet
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
> ⚠️ **Importante:**
|
|
47
|
+
> Esta biblioteca utiliza `peerDependencies`.
|
|
48
|
+
> Certifique-se de que seu projeto já possui as dependências principais do NestJS (`@nestjs/common`, `@nestjs/core`, `rxjs`) e as específicas das features que ativar (ex: `@nestjs/typeorm`, `typeorm` se usar `.withTypeOrm()`).
|
|
49
|
+
> Veja o `package.json` para a lista completa.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 🚀 Quick Start (Exemplo Completo)
|
|
54
|
+
|
|
55
|
+
### 1️⃣ Defina seu Schema de Configuração
|
|
56
|
+
|
|
57
|
+
`src/config/env.schema.ts`:
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import { IsString, IsInt, IsNotEmpty, Min, Max } from 'class-validator';
|
|
61
|
+
|
|
62
|
+
export class EnvironmentVariables {
|
|
63
|
+
@IsInt()
|
|
64
|
+
@Min(1)
|
|
65
|
+
@Max(65535)
|
|
66
|
+
PORT: number = 3000;
|
|
67
|
+
|
|
68
|
+
@IsString()
|
|
69
|
+
@IsNotEmpty()
|
|
70
|
+
DATABASE_URL: string; // Ex: postgresql://user:pass@host:5432/db
|
|
71
|
+
|
|
72
|
+
@IsString()
|
|
73
|
+
@IsNotEmpty()
|
|
74
|
+
REDIS_URL: string; // Ex: redis://localhost:6379
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### 2️⃣ Configure seu `main.ts`
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
// src/main.ts
|
|
84
|
+
import 'reflect-metadata';
|
|
85
|
+
import { AppModule } from './app/app.module';
|
|
86
|
+
import { AppInitializer } from '@innv/nest-initializer';
|
|
87
|
+
import { EnvironmentVariables } from './config/env.schema';
|
|
88
|
+
import { VersioningType } from '@nestjs/common';
|
|
89
|
+
|
|
90
|
+
async function bootstrap() {
|
|
91
|
+
const isDevelopment = process.env.NODE_ENV !== 'production';
|
|
92
|
+
|
|
93
|
+
await AppInitializer.bootstrap(AppModule, async (app) => {
|
|
94
|
+
app
|
|
95
|
+
.withValidatedConfig(EnvironmentVariables)
|
|
96
|
+
.withTypeOrm({
|
|
97
|
+
autoLoadEntities: true,
|
|
98
|
+
runMigrationsOnStartup: isDevelopment,
|
|
99
|
+
})
|
|
100
|
+
.withCaching({ defaultTtlInSeconds: 600 })
|
|
101
|
+
.withAutoDiscovery({ basePath: __dirname })
|
|
102
|
+
.withValidationPipe()
|
|
103
|
+
.withClassSerializer()
|
|
104
|
+
.withHealthCheck({ database: true, memory: true })
|
|
105
|
+
.withMetrics()
|
|
106
|
+
.onPort(parseInt(process.env.PORT || '3000', 10))
|
|
107
|
+
.withGlobalPrefix('/api')
|
|
108
|
+
.withVersioning({ type: VersioningType.URI, prefix: 'v' })
|
|
109
|
+
.withCors({ origin: '*' })
|
|
110
|
+
|
|
111
|
+
.when(isDevelopment, (builder) => {
|
|
112
|
+
builder.useDevelopmentDefaults({
|
|
113
|
+
title: 'API (Dev)',
|
|
114
|
+
description: 'Documentação da API',
|
|
115
|
+
version: '1.0.0',
|
|
116
|
+
});
|
|
117
|
+
})
|
|
118
|
+
.when(!isDevelopment, (builder) => {
|
|
119
|
+
builder.useProductionDefaults();
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
// Exemplos extras:
|
|
123
|
+
// .useGlobalGuard(JwtAuthGuard)
|
|
124
|
+
// .withPlugin(new MyCustomPlugin())
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
void bootstrap();
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Pronto! Sua aplicação NestJS está configurada com **validação, banco, cache, observabilidade, métricas e auto-discovery** — tudo de forma fluente.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## ⚙️ Uso Detalhado
|
|
136
|
+
|
|
137
|
+
### 🔧 Configuração Core
|
|
138
|
+
|
|
139
|
+
| Método | Descrição |
|
|
140
|
+
| --------------------------------------------------- | ------------------------------- |
|
|
141
|
+
| `AppInitializer.bootstrap(AppModule, configurator)` | Ponto de entrada principal. |
|
|
142
|
+
| `onPort(port)` | Define a porta. |
|
|
143
|
+
| `withGlobalPrefix(prefix)` | Prefixo global para rotas. |
|
|
144
|
+
| `withVersioning(options)` | Configura versionamento de API. |
|
|
145
|
+
| `withCors(options)` | Habilita CORS. |
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### 🧩 Configuração e Validação
|
|
150
|
+
|
|
151
|
+
`withValidatedConfig<T>(schema: Type<T>)`
|
|
152
|
+
Valida `.env` e injeta `ConfigModule` globalmente.
|
|
153
|
+
A aplicação **falha na inicialização** se a validação falhar.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### ⚡ Starters (Auto-Configuração)
|
|
158
|
+
|
|
159
|
+
- `withTypeOrm(options)`
|
|
160
|
+
- `withMongoose(options)`
|
|
161
|
+
- `withCaching(options)`
|
|
162
|
+
|
|
163
|
+
Todos configuram seus módulos respectivos (`TypeOrmModule`, `MongooseModule`, `CacheModule`) automaticamente com `ConfigService`.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### 🔍 Descoberta de Componentes
|
|
168
|
+
|
|
169
|
+
`withAutoDiscovery({ basePath })`
|
|
170
|
+
Varre o diretório e registra automaticamente:
|
|
171
|
+
|
|
172
|
+
- `@Injectable()` como providers
|
|
173
|
+
- `@Controller()` como controllers
|
|
174
|
+
|
|
175
|
+
Ignora `*.module.*`, `*.spec.*`, `node_modules`, `features`, `plugins`.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
### 🧱 Pipeline Global
|
|
180
|
+
|
|
181
|
+
| Método | Função |
|
|
182
|
+
| ----------------------------------- | ----------------------------------- |
|
|
183
|
+
| `withValidationPipe()` | Registra `ValidationPipe` global. |
|
|
184
|
+
| `useGlobalPipe(pipe)` | Pipe customizado global. |
|
|
185
|
+
| `useGlobalFilter(filter)` | Filtro de exceção global. |
|
|
186
|
+
| `useGlobalGuard(guard)` | Guard global. |
|
|
187
|
+
| `useGlobalInterceptor(interceptor)` | Interceptor global. |
|
|
188
|
+
| `withClassSerializer()` | Ativa `ClassSerializerInterceptor`. |
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
### 🩺 Observabilidade ("Actuator")
|
|
193
|
+
|
|
194
|
+
| Método | Descrição |
|
|
195
|
+
| -------------------------- | -------------------------------------------------- |
|
|
196
|
+
| `withHealthCheck(options)` | Cria endpoint `/health` usando `@nestjs/terminus`. |
|
|
197
|
+
| `withMetrics()` | Cria endpoint `/metrics` no formato Prometheus. |
|
|
198
|
+
|
|
199
|
+
Suporte nativo a métricas HTTP (latência, contadores, etc).
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
### 🧰 Middlewares e Hooks
|
|
204
|
+
|
|
205
|
+
| Método | Ação |
|
|
206
|
+
| ------------------------ | ----------------------------------- |
|
|
207
|
+
| `withGracefulShutdown()` | Habilita `enableShutdownHooks()`. |
|
|
208
|
+
| `useHelmet()` | Adiciona `helmet()` para segurança. |
|
|
209
|
+
| `enableCompression()` | Adiciona `compression()` para gzip. |
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
### 📘 Swagger (OpenAPI)
|
|
214
|
+
|
|
215
|
+
| Método | Descrição |
|
|
216
|
+
| ------------------------- | ------------------------------- |
|
|
217
|
+
| `withSwagger(options)` | Configura documentação Swagger. |
|
|
218
|
+
| `withAdvancedSwaggerUI()` | Tema escuro e UI aprimorada. |
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
### 🧩 Extensibilidade
|
|
223
|
+
|
|
224
|
+
| Método | Descrição |
|
|
225
|
+
| --------------------- | ------------------------------ |
|
|
226
|
+
| `withPlugin(plugin)` | Adiciona plugins customizados. |
|
|
227
|
+
| `when(condition, fn)` | Executa blocos condicionais. |
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
### 🪄 Presets
|
|
232
|
+
|
|
233
|
+
| Método | Descrição |
|
|
234
|
+
| ---------------------------------------- | -------------------------------------------------------- |
|
|
235
|
+
| `useDevelopmentDefaults(swaggerOptions)` | Atalho para Swagger + Logger. |
|
|
236
|
+
| `useProductionDefaults()` | Atalho para Helmet, Compression, Shutdown e RateLimiter. |
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 💡 Filosofia
|
|
241
|
+
|
|
242
|
+
`@innv/nest-initializer` traz a **produtividade e convenções inteligentes do Spring Boot** para o NestJS, mantendo a flexibilidade e o poder da plataforma.
|
|
243
|
+
O foco é **reduzir boilerplate e aumentar a consistência** entre projetos NestJS, permitindo que times foquem no que realmente importa: **a lógica de negócio.**
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## 🤝 Contribuição
|
|
248
|
+
|
|
249
|
+
Contribuições são bem-vindas!
|
|
250
|
+
Abra uma **Issue** ou **Pull Request** no repositório:
|
|
251
|
+
|
|
252
|
+
👉 [https://github.com/innovare-tech/nest-initializer](https://github.com/innovare-tech/nest-initializer)
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## 📜 Licença
|
|
257
|
+
|
|
258
|
+
Distribuído sob a licença **MIT**.
|
|
259
|
+
Veja o arquivo [LICENSE](./LICENSE) para mais informações.
|
|
@@ -6,6 +6,7 @@ import { SwaggerCustomOptions, SwaggerDocumentOptions } from '@nestjs/swagger';
|
|
|
6
6
|
import { TerminusHealthCheckOptions } from '../features';
|
|
7
7
|
import { CachingStarterOptions, MongooseStarterOptions, TypeOrmStarterOptions } from '../starters';
|
|
8
8
|
import { ResponseMapper } from '../interceptors/response-pattern.interceptor';
|
|
9
|
+
import { IndexPageOptions } from '../features/index-page.factory';
|
|
9
10
|
export interface AppInitializerPlugin {
|
|
10
11
|
apply(app: INestApplication): Promise<void> | void;
|
|
11
12
|
}
|
|
@@ -41,6 +42,7 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
|
|
|
41
42
|
private readonly nexusClientProviders;
|
|
42
43
|
private readonly globalInterceptors;
|
|
43
44
|
private readonly factoryGeneratedControllers;
|
|
45
|
+
private readonly excludedRoutes;
|
|
44
46
|
private constructor();
|
|
45
47
|
useDevelopmentDefaults(swaggerOptions: Omit<SwaggerOptions, 'path'>): this;
|
|
46
48
|
useProductionDefaults(): this;
|
|
@@ -72,6 +74,7 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
|
|
|
72
74
|
withAutoDiscovery(options: {
|
|
73
75
|
basePath: string;
|
|
74
76
|
}): this;
|
|
77
|
+
withIndexPage(options?: IndexPageOptions): this;
|
|
75
78
|
addGlobalInterceptor(interceptor: NestInterceptor): this;
|
|
76
79
|
withResponseMapper<T>(mapper: ResponseMapper<T>): this;
|
|
77
80
|
private listen;
|
|
@@ -16,6 +16,7 @@ const features_1 = require("../features");
|
|
|
16
16
|
const plugins_1 = require("../plugins");
|
|
17
17
|
const starters_1 = require("../starters");
|
|
18
18
|
const response_pattern_interceptor_1 = require("../interceptors/response-pattern.interceptor");
|
|
19
|
+
const index_page_factory_1 = require("../features/index-page.factory");
|
|
19
20
|
class AppInitializer {
|
|
20
21
|
app;
|
|
21
22
|
module;
|
|
@@ -34,6 +35,7 @@ class AppInitializer {
|
|
|
34
35
|
nexusClientProviders = [];
|
|
35
36
|
globalInterceptors = [];
|
|
36
37
|
factoryGeneratedControllers = [];
|
|
38
|
+
excludedRoutes = [];
|
|
37
39
|
constructor(module, adapter) {
|
|
38
40
|
this.module = module;
|
|
39
41
|
this.adapter = adapter;
|
|
@@ -213,6 +215,13 @@ class AppInitializer {
|
|
|
213
215
|
}
|
|
214
216
|
return this;
|
|
215
217
|
}
|
|
218
|
+
withIndexPage(options = {}) {
|
|
219
|
+
const controllerPath = options.path ?? '/';
|
|
220
|
+
const IndexController = (0, index_page_factory_1.createIndexPageController)(options);
|
|
221
|
+
this.factoryGeneratedControllers.push(IndexController);
|
|
222
|
+
this.excludedRoutes.push(controllerPath);
|
|
223
|
+
return this;
|
|
224
|
+
}
|
|
216
225
|
addGlobalInterceptor(interceptor) {
|
|
217
226
|
this.globalInterceptors.push(interceptor);
|
|
218
227
|
return this;
|
|
@@ -246,7 +255,9 @@ class AppInitializer {
|
|
|
246
255
|
? await core_1.NestFactory.create(DynamicRootModule, this.adapter)
|
|
247
256
|
: await core_1.NestFactory.create(DynamicRootModule);
|
|
248
257
|
if (this.globalPrefix)
|
|
249
|
-
this.app.setGlobalPrefix(this.globalPrefix
|
|
258
|
+
this.app.setGlobalPrefix(this.globalPrefix, {
|
|
259
|
+
exclude: this.excludedRoutes,
|
|
260
|
+
});
|
|
250
261
|
if (this.corsOptions)
|
|
251
262
|
this.app.enableCors(this.corsOptions);
|
|
252
263
|
if (this.versioningOptions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-initializer.js","sourceRoot":"","sources":["../../../src/core/app-initializer.ts"],"names":[],"mappings":";;;;AAAA,4BAA0B;AAE1B,uCAAqE;AAErE,2CAewB;AAGxB,2CAA8C;AAC9C,uCAQsB;AACtB,6CAKyB;AACzB,sEAAsC;AACtC,4DAA4B;AAE5B,mEAA6D;AAC7D,uEAA2D;AAC3D,0CAIqB;AACrB,wCAAoE;AACpE,0CAOqB;AACrB,+FAGsD;
|
|
1
|
+
{"version":3,"file":"app-initializer.js","sourceRoot":"","sources":["../../../src/core/app-initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createIndexPageController = createIndexPageController;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
require("reflect-metadata");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
function createIndexPageController(options = {}) {
|
|
9
|
+
const routePath = options.path ?? '/';
|
|
10
|
+
const htmlFile = options.filename ?? 'index.html';
|
|
11
|
+
const publicDir = options.publicDir ?? 'public';
|
|
12
|
+
const filePath = (0, path_1.join)(process.cwd(), publicDir, htmlFile);
|
|
13
|
+
let DynamicIndexController = class DynamicIndexController {
|
|
14
|
+
serveIndex(res) {
|
|
15
|
+
res.sendFile(filePath);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
tslib_1.__decorate([
|
|
19
|
+
(0, common_1.Get)(),
|
|
20
|
+
tslib_1.__param(0, (0, common_1.Res)()),
|
|
21
|
+
tslib_1.__metadata("design:type", Function),
|
|
22
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
23
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
24
|
+
], DynamicIndexController.prototype, "serveIndex", null);
|
|
25
|
+
DynamicIndexController = tslib_1.__decorate([
|
|
26
|
+
(0, common_1.Controller)(routePath)
|
|
27
|
+
], DynamicIndexController);
|
|
28
|
+
return DynamicIndexController;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=index-page.factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-page.factory.js","sourceRoot":"","sources":["../../../src/features/index-page.factory.ts"],"names":[],"mappings":";;AAuBA,8DAkBC;;AAzCD,4BAA0B;AAC1B,2CAA4D;AAE5D,+BAA4B;AAoB5B,SAAgB,yBAAyB,CACvC,UAA4B,EAAE;IAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,YAAY,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC;IAEhD,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAG1D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;QAE1B,UAAU,CAAQ,GAAa;YAC7B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;KACF,CAAA;IAHC;QADC,IAAA,YAAG,GAAE;QACM,mBAAA,IAAA,YAAG,GAAE,CAAA;;;;4DAEhB;IAJG,sBAAsB;QAD3B,IAAA,mBAAU,EAAC,SAAS,CAAC;OAChB,sBAAsB,CAK3B;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export { TypeOrmStarterOptions } from './starters/typeorm.starter';
|
|
|
3
3
|
export { MongooseStarterOptions } from './starters/mongoose.starter';
|
|
4
4
|
export { CachingStarterOptions } from './starters/caching.starter';
|
|
5
5
|
export { TerminusHealthCheckOptions } from './features/terminus-health-check.module';
|
|
6
|
+
export { IndexPageOptions } from './features/index-page.factory';
|
|
6
7
|
export * from './plugins';
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAAuC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAAuC;AAUvC,oDAA0B"}
|
|
@@ -6,6 +6,7 @@ import { SwaggerCustomOptions, SwaggerDocumentOptions } from '@nestjs/swagger';
|
|
|
6
6
|
import { TerminusHealthCheckOptions } from '../features';
|
|
7
7
|
import { CachingStarterOptions, MongooseStarterOptions, TypeOrmStarterOptions } from '../starters';
|
|
8
8
|
import { ResponseMapper } from '../interceptors/response-pattern.interceptor';
|
|
9
|
+
import { IndexPageOptions } from '../features/index-page.factory';
|
|
9
10
|
export interface AppInitializerPlugin {
|
|
10
11
|
apply(app: INestApplication): Promise<void> | void;
|
|
11
12
|
}
|
|
@@ -41,6 +42,7 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
|
|
|
41
42
|
private readonly nexusClientProviders;
|
|
42
43
|
private readonly globalInterceptors;
|
|
43
44
|
private readonly factoryGeneratedControllers;
|
|
45
|
+
private readonly excludedRoutes;
|
|
44
46
|
private constructor();
|
|
45
47
|
useDevelopmentDefaults(swaggerOptions: Omit<SwaggerOptions, 'path'>): this;
|
|
46
48
|
useProductionDefaults(): this;
|
|
@@ -72,6 +74,7 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
|
|
|
72
74
|
withAutoDiscovery(options: {
|
|
73
75
|
basePath: string;
|
|
74
76
|
}): this;
|
|
77
|
+
withIndexPage(options?: IndexPageOptions): this;
|
|
75
78
|
addGlobalInterceptor(interceptor: NestInterceptor): this;
|
|
76
79
|
withResponseMapper<T>(mapper: ResponseMapper<T>): this;
|
|
77
80
|
private listen;
|
|
@@ -16,6 +16,7 @@ const features_1 = require("../features");
|
|
|
16
16
|
const plugins_1 = require("../plugins");
|
|
17
17
|
const starters_1 = require("../starters");
|
|
18
18
|
const response_pattern_interceptor_1 = require("../interceptors/response-pattern.interceptor");
|
|
19
|
+
const index_page_factory_1 = require("../features/index-page.factory");
|
|
19
20
|
class AppInitializer {
|
|
20
21
|
app;
|
|
21
22
|
module;
|
|
@@ -34,6 +35,7 @@ class AppInitializer {
|
|
|
34
35
|
nexusClientProviders = [];
|
|
35
36
|
globalInterceptors = [];
|
|
36
37
|
factoryGeneratedControllers = [];
|
|
38
|
+
excludedRoutes = [];
|
|
37
39
|
constructor(module, adapter) {
|
|
38
40
|
this.module = module;
|
|
39
41
|
this.adapter = adapter;
|
|
@@ -213,6 +215,13 @@ class AppInitializer {
|
|
|
213
215
|
}
|
|
214
216
|
return this;
|
|
215
217
|
}
|
|
218
|
+
withIndexPage(options = {}) {
|
|
219
|
+
const controllerPath = options.path ?? '/';
|
|
220
|
+
const IndexController = (0, index_page_factory_1.createIndexPageController)(options);
|
|
221
|
+
this.factoryGeneratedControllers.push(IndexController);
|
|
222
|
+
this.excludedRoutes.push(controllerPath);
|
|
223
|
+
return this;
|
|
224
|
+
}
|
|
216
225
|
addGlobalInterceptor(interceptor) {
|
|
217
226
|
this.globalInterceptors.push(interceptor);
|
|
218
227
|
return this;
|
|
@@ -246,7 +255,9 @@ class AppInitializer {
|
|
|
246
255
|
? await core_1.NestFactory.create(DynamicRootModule, this.adapter)
|
|
247
256
|
: await core_1.NestFactory.create(DynamicRootModule);
|
|
248
257
|
if (this.globalPrefix)
|
|
249
|
-
this.app.setGlobalPrefix(this.globalPrefix
|
|
258
|
+
this.app.setGlobalPrefix(this.globalPrefix, {
|
|
259
|
+
exclude: this.excludedRoutes,
|
|
260
|
+
});
|
|
250
261
|
if (this.corsOptions)
|
|
251
262
|
this.app.enableCors(this.corsOptions);
|
|
252
263
|
if (this.versioningOptions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-initializer.js","sourceRoot":"","sources":["../../../src/core/app-initializer.ts"],"names":[],"mappings":";;;;AAAA,4BAA0B;AAE1B,uCAAqE;AAErE,2CAewB;AAGxB,2CAA8C;AAC9C,uCAQsB;AACtB,6CAKyB;AACzB,sEAAsC;AACtC,4DAA4B;AAE5B,mEAA6D;AAC7D,uEAA2D;AAC3D,0CAIqB;AACrB,wCAAoE;AACpE,0CAOqB;AACrB,+FAGsD;
|
|
1
|
+
{"version":3,"file":"app-initializer.js","sourceRoot":"","sources":["../../../src/core/app-initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createIndexPageController = createIndexPageController;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
require("reflect-metadata");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
function createIndexPageController(options = {}) {
|
|
9
|
+
const routePath = options.path ?? '/';
|
|
10
|
+
const htmlFile = options.filename ?? 'index.html';
|
|
11
|
+
const publicDir = options.publicDir ?? 'public';
|
|
12
|
+
const filePath = (0, path_1.join)(process.cwd(), publicDir, htmlFile);
|
|
13
|
+
let DynamicIndexController = class DynamicIndexController {
|
|
14
|
+
serveIndex(res) {
|
|
15
|
+
res.sendFile(filePath);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
tslib_1.__decorate([
|
|
19
|
+
(0, common_1.Get)(),
|
|
20
|
+
tslib_1.__param(0, (0, common_1.Res)()),
|
|
21
|
+
tslib_1.__metadata("design:type", Function),
|
|
22
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
23
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
24
|
+
], DynamicIndexController.prototype, "serveIndex", null);
|
|
25
|
+
DynamicIndexController = tslib_1.__decorate([
|
|
26
|
+
(0, common_1.Controller)(routePath)
|
|
27
|
+
], DynamicIndexController);
|
|
28
|
+
return DynamicIndexController;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=index-page.factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-page.factory.js","sourceRoot":"","sources":["../../../src/features/index-page.factory.ts"],"names":[],"mappings":";;AAuBA,8DAkBC;;AAzCD,4BAA0B;AAC1B,2CAA4D;AAE5D,+BAA4B;AAoB5B,SAAgB,yBAAyB,CACvC,UAA4B,EAAE;IAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,YAAY,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC;IAEhD,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAG1D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;QAE1B,UAAU,CAAQ,GAAa;YAC7B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;KACF,CAAA;IAHC;QADC,IAAA,YAAG,GAAE;QACM,mBAAA,IAAA,YAAG,GAAE,CAAA;;;;4DAEhB;IAJG,sBAAsB;QAD3B,IAAA,mBAAU,EAAC,SAAS,CAAC;OAChB,sBAAsB,CAK3B;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export { TypeOrmStarterOptions } from './starters/typeorm.starter';
|
|
|
3
3
|
export { MongooseStarterOptions } from './starters/mongoose.starter';
|
|
4
4
|
export { CachingStarterOptions } from './starters/caching.starter';
|
|
5
5
|
export { TerminusHealthCheckOptions } from './features/terminus-health-check.module';
|
|
6
|
+
export { IndexPageOptions } from './features/index-page.factory';
|
|
6
7
|
export * from './plugins';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAAuC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAAuC;AAUvC,oDAA0B"}
|
|
@@ -6,6 +6,7 @@ import { SwaggerCustomOptions, SwaggerDocumentOptions } from '@nestjs/swagger';
|
|
|
6
6
|
import { TerminusHealthCheckOptions } from '../features';
|
|
7
7
|
import { CachingStarterOptions, MongooseStarterOptions, TypeOrmStarterOptions } from '../starters';
|
|
8
8
|
import { ResponseMapper } from '../interceptors/response-pattern.interceptor';
|
|
9
|
+
import { IndexPageOptions } from '../features/index-page.factory';
|
|
9
10
|
export interface AppInitializerPlugin {
|
|
10
11
|
apply(app: INestApplication): Promise<void> | void;
|
|
11
12
|
}
|
|
@@ -41,6 +42,7 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
|
|
|
41
42
|
private readonly nexusClientProviders;
|
|
42
43
|
private readonly globalInterceptors;
|
|
43
44
|
private readonly factoryGeneratedControllers;
|
|
45
|
+
private readonly excludedRoutes;
|
|
44
46
|
private constructor();
|
|
45
47
|
useDevelopmentDefaults(swaggerOptions: Omit<SwaggerOptions, 'path'>): this;
|
|
46
48
|
useProductionDefaults(): this;
|
|
@@ -72,6 +74,7 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
|
|
|
72
74
|
withAutoDiscovery(options: {
|
|
73
75
|
basePath: string;
|
|
74
76
|
}): this;
|
|
77
|
+
withIndexPage(options?: IndexPageOptions): this;
|
|
75
78
|
addGlobalInterceptor(interceptor: NestInterceptor): this;
|
|
76
79
|
withResponseMapper<T>(mapper: ResponseMapper<T>): this;
|
|
77
80
|
private listen;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export { TypeOrmStarterOptions } from './starters/typeorm.starter';
|
|
|
3
3
|
export { MongooseStarterOptions } from './starters/mongoose.starter';
|
|
4
4
|
export { CachingStarterOptions } from './starters/caching.starter';
|
|
5
5
|
export { TerminusHealthCheckOptions } from './features/terminus-health-check.module';
|
|
6
|
+
export { IndexPageOptions } from './features/index-page.factory';
|
|
6
7
|
export * from './plugins';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@innv/nest-initializer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
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",
|
|
@@ -125,6 +125,7 @@
|
|
|
125
125
|
"reflect-metadata": "^0.2.2",
|
|
126
126
|
"rimraf": "^5.0.7",
|
|
127
127
|
"rxjs": "^7.8.1",
|
|
128
|
+
"supertest": "^7.1.4",
|
|
128
129
|
"ts-jest": "^29.4.5",
|
|
129
130
|
"typeorm": "^0.3.27"
|
|
130
131
|
},
|