@innv/nest-initializer 0.4.4 → 0.4.7
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 +4 -2
- package/dist/cjs/core/app-initializer.js +19 -11
- package/dist/cjs/core/app-initializer.js.map +1 -1
- package/dist/cjs/features/metrics/metrics.controller.d.ts +1 -2
- package/dist/cjs/features/metrics/metrics.controller.js +1 -2
- package/dist/cjs/features/metrics/metrics.controller.js.map +1 -1
- package/dist/cjs/features/metrics/metrics.interceptor.d.ts +1 -2
- package/dist/cjs/features/metrics/metrics.interceptor.js +13 -8
- package/dist/cjs/features/metrics/metrics.interceptor.js.map +1 -1
- package/dist/cjs/features/metrics/metrics.provider.js +23 -4
- package/dist/cjs/features/metrics/metrics.provider.js.map +1 -1
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/plugins/index.d.ts +1 -3
- package/dist/cjs/plugins/index.js +0 -4
- package/dist/cjs/plugins/index.js.map +1 -1
- package/dist/cjs/plugins/rate-limiter.plugin.d.ts +2 -2
- package/dist/cjs/plugins/rate-limiter.plugin.js +26 -5
- package/dist/cjs/plugins/rate-limiter.plugin.js.map +1 -1
- package/dist/cjs/plugins/typeorm-migration.plugin.d.ts +4 -0
- package/dist/cjs/plugins/typeorm-migration.plugin.js +40 -6
- package/dist/cjs/plugins/typeorm-migration.plugin.js.map +1 -1
- package/dist/cjs/starters/typeorm.starter.d.ts +3 -6
- package/dist/cjs/starters/typeorm.starter.js +14 -4
- package/dist/cjs/starters/typeorm.starter.js.map +1 -1
- package/dist/cjs/utils/tryRequire.d.ts +1 -0
- package/dist/cjs/utils/tryRequire.js +16 -0
- package/dist/cjs/utils/tryRequire.js.map +1 -0
- package/dist/esm/core/app-initializer.d.ts +4 -2
- package/dist/esm/core/app-initializer.js +19 -11
- package/dist/esm/core/app-initializer.js.map +1 -1
- package/dist/esm/features/metrics/metrics.controller.d.ts +1 -2
- package/dist/esm/features/metrics/metrics.controller.js +1 -2
- package/dist/esm/features/metrics/metrics.controller.js.map +1 -1
- package/dist/esm/features/metrics/metrics.interceptor.d.ts +1 -2
- package/dist/esm/features/metrics/metrics.interceptor.js +13 -8
- package/dist/esm/features/metrics/metrics.interceptor.js.map +1 -1
- package/dist/esm/features/metrics/metrics.provider.js +23 -4
- package/dist/esm/features/metrics/metrics.provider.js.map +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/plugins/index.d.ts +1 -3
- package/dist/esm/plugins/index.js +0 -4
- package/dist/esm/plugins/index.js.map +1 -1
- package/dist/esm/plugins/rate-limiter.plugin.d.ts +2 -2
- package/dist/esm/plugins/rate-limiter.plugin.js +26 -5
- package/dist/esm/plugins/rate-limiter.plugin.js.map +1 -1
- package/dist/esm/plugins/typeorm-migration.plugin.d.ts +4 -0
- package/dist/esm/plugins/typeorm-migration.plugin.js +40 -6
- package/dist/esm/plugins/typeorm-migration.plugin.js.map +1 -1
- package/dist/esm/starters/typeorm.starter.d.ts +3 -6
- package/dist/esm/starters/typeorm.starter.js +14 -4
- package/dist/esm/starters/typeorm.starter.js.map +1 -1
- package/dist/esm/utils/tryRequire.d.ts +1 -0
- package/dist/esm/utils/tryRequire.js +16 -0
- package/dist/esm/utils/tryRequire.js.map +1 -0
- package/dist/types/core/app-initializer.d.ts +4 -2
- package/dist/types/features/metrics/metrics.controller.d.ts +1 -2
- package/dist/types/features/metrics/metrics.interceptor.d.ts +1 -2
- package/dist/types/index.d.ts +0 -1
- package/dist/types/plugins/index.d.ts +1 -3
- package/dist/types/plugins/rate-limiter.plugin.d.ts +2 -2
- package/dist/types/plugins/typeorm-migration.plugin.d.ts +4 -0
- package/dist/types/starters/typeorm.starter.d.ts +3 -6
- package/dist/types/utils/tryRequire.d.ts +1 -0
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { TerminusHealthCheckOptions } from '../features';
|
|
|
7
7
|
import { CachingStarterOptions, MongooseStarterOptions, TypeOrmStarterOptions } from '../starters';
|
|
8
8
|
import { ResponseMapper } from '../interceptors/response-pattern.interceptor';
|
|
9
9
|
import { IndexPageOptions } from '../features/index-page.factory';
|
|
10
|
+
import { NestApplicationOptions } from '@nestjs/common/interfaces/nest-application-options.interface';
|
|
10
11
|
export interface AppInitializerPlugin {
|
|
11
12
|
apply(app: INestApplication): Promise<void> | void;
|
|
12
13
|
}
|
|
@@ -28,6 +29,7 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
|
|
|
28
29
|
private app;
|
|
29
30
|
private readonly module;
|
|
30
31
|
private readonly adapter?;
|
|
32
|
+
private readonly options?;
|
|
31
33
|
private readonly logger;
|
|
32
34
|
private port;
|
|
33
35
|
private globalPrefix?;
|
|
@@ -49,8 +51,8 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
|
|
|
49
51
|
when(condition: boolean, configure: (builder: this) => void): this;
|
|
50
52
|
withHealthCheck(options: TerminusHealthCheckOptions): this;
|
|
51
53
|
withMetrics(): this;
|
|
52
|
-
static bootstrap<T extends INestApplication = INestApplication>(module: Type, configurator: AppConfigurator<T
|
|
53
|
-
static bootstrap<T extends INestApplication = INestApplication>(module: Type, adapter: AbstractHttpAdapter, configurator: AppConfigurator<T
|
|
54
|
+
static bootstrap<T extends INestApplication = INestApplication>(module: Type, configurator: AppConfigurator<T>, options?: NestApplicationOptions): Promise<void>;
|
|
55
|
+
static bootstrap<T extends INestApplication = INestApplication>(module: Type, adapter: AbstractHttpAdapter, configurator: AppConfigurator<T>, options?: NestApplicationOptions): Promise<void>;
|
|
54
56
|
onPort(port: number): this;
|
|
55
57
|
withPlugin(plugin: AppInitializerPlugin): this;
|
|
56
58
|
withVersioning(options: VersioningOptions): this;
|
|
@@ -13,14 +13,16 @@ const helmet_1 = tslib_1.__importDefault(require("helmet"));
|
|
|
13
13
|
const auto_discovery_helper_1 = require("./auto-discovery.helper");
|
|
14
14
|
const config_validator_helper_1 = require("./config-validator.helper");
|
|
15
15
|
const features_1 = require("../features");
|
|
16
|
-
const plugins_1 = require("../plugins");
|
|
17
16
|
const starters_1 = require("../starters");
|
|
18
17
|
const response_pattern_interceptor_1 = require("../interceptors/response-pattern.interceptor");
|
|
19
18
|
const index_page_factory_1 = require("../features/index-page.factory");
|
|
19
|
+
const request_logger_plugin_1 = require("../plugins/request-logger.plugin");
|
|
20
|
+
const rate_limiter_plugin_1 = require("../plugins/rate-limiter.plugin");
|
|
20
21
|
class AppInitializer {
|
|
21
22
|
app;
|
|
22
23
|
module;
|
|
23
24
|
adapter;
|
|
25
|
+
options;
|
|
24
26
|
logger = new common_1.Logger(AppInitializer.name);
|
|
25
27
|
port = parseInt(process.env.PORT || '3000', 10);
|
|
26
28
|
globalPrefix;
|
|
@@ -36,20 +38,21 @@ class AppInitializer {
|
|
|
36
38
|
globalInterceptors = [];
|
|
37
39
|
factoryGeneratedControllers = [];
|
|
38
40
|
excludedRoutes = [];
|
|
39
|
-
constructor(module, adapter) {
|
|
41
|
+
constructor(module, adapter, options) {
|
|
40
42
|
this.module = module;
|
|
41
43
|
this.adapter = adapter;
|
|
44
|
+
this.options = options;
|
|
42
45
|
}
|
|
43
46
|
useDevelopmentDefaults(swaggerOptions) {
|
|
44
47
|
this.withSwagger({ ...swaggerOptions, path: 'docs' });
|
|
45
|
-
this.withPlugin(new
|
|
48
|
+
this.withPlugin(new request_logger_plugin_1.RequestLoggerPlugin());
|
|
46
49
|
return this;
|
|
47
50
|
}
|
|
48
51
|
useProductionDefaults() {
|
|
49
52
|
this.useHelmet();
|
|
50
53
|
this.enableCompression();
|
|
51
54
|
this.withGracefulShutdown();
|
|
52
|
-
this.withPlugin(new
|
|
55
|
+
this.withPlugin(new rate_limiter_plugin_1.RateLimiterPlugin());
|
|
53
56
|
return this;
|
|
54
57
|
}
|
|
55
58
|
when(condition, configure) {
|
|
@@ -66,14 +69,19 @@ class AppInitializer {
|
|
|
66
69
|
this.featureModules.push(features_1.MetricsModule.forRoot());
|
|
67
70
|
return this;
|
|
68
71
|
}
|
|
69
|
-
static async bootstrap(module, adapterOrConfigurator, configurator) {
|
|
70
|
-
const
|
|
71
|
-
const adapter =
|
|
72
|
-
const finalConfigurator =
|
|
72
|
+
static async bootstrap(module, adapterOrConfigurator, configurator, options) {
|
|
73
|
+
const isConfiguratorOnly = typeof adapterOrConfigurator === 'function';
|
|
74
|
+
const adapter = isConfiguratorOnly ? undefined : adapterOrConfigurator;
|
|
75
|
+
const finalConfigurator = isConfiguratorOnly
|
|
76
|
+
? adapterOrConfigurator
|
|
77
|
+
: configurator;
|
|
78
|
+
const finalOptions = isConfiguratorOnly
|
|
79
|
+
? configurator
|
|
80
|
+
: options;
|
|
73
81
|
if (!finalConfigurator) {
|
|
74
82
|
throw new TypeError('Função de configuração do bootstrap não encontrada. Verifique os argumentos.');
|
|
75
83
|
}
|
|
76
|
-
const initializer = new AppInitializer(module, adapter);
|
|
84
|
+
const initializer = new AppInitializer(module, adapter, finalOptions);
|
|
77
85
|
try {
|
|
78
86
|
initializer.logger.log('Iniciando o processo de bootstrap da aplicação...');
|
|
79
87
|
finalConfigurator(initializer);
|
|
@@ -253,8 +261,8 @@ class AppInitializer {
|
|
|
253
261
|
})
|
|
254
262
|
], DynamicRootModule);
|
|
255
263
|
this.app = this.adapter
|
|
256
|
-
? await core_1.NestFactory.create(DynamicRootModule, this.adapter)
|
|
257
|
-
: await core_1.NestFactory.create(DynamicRootModule);
|
|
264
|
+
? await core_1.NestFactory.create(DynamicRootModule, this.adapter, this.options)
|
|
265
|
+
: await core_1.NestFactory.create(DynamicRootModule, this.options);
|
|
258
266
|
if (this.globalPrefix)
|
|
259
267
|
this.app.setGlobalPrefix(this.globalPrefix, {
|
|
260
268
|
exclude: this.excludedRoutes,
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"app-initializer.js","sourceRoot":"","sources":["../../../src/core/app-initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MetricsController = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
|
-
const prom_client_1 = require("prom-client");
|
|
7
6
|
const metrics_tokens_1 = require("./metrics.tokens");
|
|
8
7
|
let MetricsController = class MetricsController {
|
|
9
8
|
registry;
|
|
@@ -26,6 +25,6 @@ tslib_1.__decorate([
|
|
|
26
25
|
exports.MetricsController = MetricsController = tslib_1.__decorate([
|
|
27
26
|
(0, common_1.Controller)('metrics'),
|
|
28
27
|
tslib_1.__param(0, (0, common_1.Inject)(metrics_tokens_1.METRICS_REGISTRY)),
|
|
29
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
28
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
30
29
|
], MetricsController);
|
|
31
30
|
//# sourceMappingURL=metrics.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.controller.js","sourceRoot":"","sources":["../../../../src/features/metrics/metrics.controller.ts"],"names":[],"mappings":";;;;AAAA,2CAA8D;
|
|
1
|
+
{"version":3,"file":"metrics.controller.js","sourceRoot":"","sources":["../../../../src/features/metrics/metrics.controller.ts"],"names":[],"mappings":";;;;AAAA,2CAA8D;AAE9D,qDAAoD;AAG7C,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC2B;IAAvD,YAAuD,QAAa;QAAb,aAAQ,GAAR,QAAQ,CAAK;IAAG,CAAC;IAGlE,AAAN,KAAK,CAAC,UAAU,CAAQ,GAAQ;QAC9B,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AARY,8CAAiB;AAItB;IADL,IAAA,YAAG,GAAE;IACY,mBAAA,IAAA,YAAG,GAAE,CAAA;;;;mDAGtB;4BAPU,iBAAiB;IAD7B,IAAA,mBAAU,EAAC,SAAS,CAAC;IAEP,mBAAA,IAAA,eAAM,EAAC,iCAAgB,CAAC,CAAA;;GAD1B,iBAAiB,CAQ7B"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
|
|
2
|
-
import { Histogram } from 'prom-client';
|
|
3
2
|
import { Observable } from 'rxjs';
|
|
4
3
|
export declare class MetricsInterceptor implements NestInterceptor {
|
|
5
4
|
private readonly histogram;
|
|
6
|
-
constructor(histogram:
|
|
5
|
+
constructor(histogram: any);
|
|
7
6
|
intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
|
|
8
7
|
}
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MetricsInterceptor = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
|
-
const prom_client_1 = require("prom-client");
|
|
7
6
|
const operators_1 = require("rxjs/operators");
|
|
8
7
|
const metrics_tokens_1 = require("./metrics.tokens");
|
|
9
8
|
let MetricsInterceptor = class MetricsInterceptor {
|
|
@@ -15,14 +14,20 @@ let MetricsInterceptor = class MetricsInterceptor {
|
|
|
15
14
|
const httpContext = context.switchToHttp();
|
|
16
15
|
const request = httpContext.getRequest();
|
|
17
16
|
const response = httpContext.getResponse();
|
|
18
|
-
const
|
|
17
|
+
const endTimer = this.histogram && this.histogram.startTimer
|
|
18
|
+
? this.histogram.startTimer()
|
|
19
|
+
: () => () => { };
|
|
19
20
|
return next.handle().pipe((0, operators_1.finalize)(() => {
|
|
20
21
|
const path = request.route?.path ?? request.path;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
try {
|
|
23
|
+
endTimer({
|
|
24
|
+
method: request.method,
|
|
25
|
+
path: path,
|
|
26
|
+
status_code: response?.statusCode ?? 200,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
}
|
|
26
31
|
}));
|
|
27
32
|
}
|
|
28
33
|
};
|
|
@@ -30,6 +35,6 @@ exports.MetricsInterceptor = MetricsInterceptor;
|
|
|
30
35
|
exports.MetricsInterceptor = MetricsInterceptor = tslib_1.__decorate([
|
|
31
36
|
(0, common_1.Injectable)(),
|
|
32
37
|
tslib_1.__param(0, (0, common_1.Inject)(metrics_tokens_1.METRICS_HTTP_HISTOGRAM)),
|
|
33
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
38
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
34
39
|
], MetricsInterceptor);
|
|
35
40
|
//# sourceMappingURL=metrics.interceptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.interceptor.js","sourceRoot":"","sources":["../../../../src/features/metrics/metrics.interceptor.ts"],"names":[],"mappings":";;;;AAAA,2CAMwB;
|
|
1
|
+
{"version":3,"file":"metrics.interceptor.js","sourceRoot":"","sources":["../../../../src/features/metrics/metrics.interceptor.ts"],"names":[],"mappings":";;;;AAAA,2CAMwB;AAGxB,8CAA0C;AAE1C,qDAA0D;AAGnD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEsB;IADnD,YACmD,SAAc;QAAd,cAAS,GAAT,SAAS,CAAK;IAC9D,CAAC;IAEJ,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAW,CAAC;QAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAY,CAAC;QAErD,MAAM,QAAQ,GACZ,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU;YACzC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC7B,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;QAErB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,oBAAQ,EAAC,GAAG,EAAE;YACZ,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YACjD,IAAI,CAAC;gBACH,QAAQ,CAAC;oBACP,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,IAAI,EAAE,IAAI;oBACV,WAAW,EAAE,QAAQ,EAAE,UAAU,IAAI,GAAG;iBACzC,CAAC,CAAC;YAEL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;YAEf,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AA/BY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;IAGR,mBAAA,IAAA,eAAM,EAAC,uCAAsB,CAAC,CAAA;;GAFtB,kBAAkB,CA+B9B"}
|
|
@@ -1,21 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.metricsProviders = void 0;
|
|
4
|
-
const
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
5
|
const metrics_tokens_1 = require("./metrics.tokens");
|
|
6
|
+
const tryRequire_1 = require("../../utils/tryRequire");
|
|
7
|
+
const logger = new common_1.Logger('metrics.providers');
|
|
6
8
|
exports.metricsProviders = [
|
|
7
9
|
{
|
|
8
10
|
provide: metrics_tokens_1.METRICS_REGISTRY,
|
|
9
11
|
useFactory: () => {
|
|
10
|
-
const
|
|
11
|
-
(
|
|
12
|
+
const prom = (0, tryRequire_1.tryRequire)('prom-client');
|
|
13
|
+
if (!prom) {
|
|
14
|
+
logger.warn('[nest-initializer] prom-client não encontrado — métricas desabilitadas (Registry no-op).');
|
|
15
|
+
return {
|
|
16
|
+
registerMetric: () => { },
|
|
17
|
+
metrics: async () => '',
|
|
18
|
+
contentType: 'text/plain; version=0.0.4; charset=utf-8',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const { Registry, collectDefaultMetrics } = prom;
|
|
22
|
+
const registry = new Registry();
|
|
23
|
+
collectDefaultMetrics({ register: registry });
|
|
12
24
|
return registry;
|
|
13
25
|
},
|
|
14
26
|
},
|
|
15
27
|
{
|
|
16
28
|
provide: metrics_tokens_1.METRICS_HTTP_HISTOGRAM,
|
|
17
29
|
useFactory: (registry) => {
|
|
18
|
-
const
|
|
30
|
+
const prom = (0, tryRequire_1.tryRequire)('prom-client');
|
|
31
|
+
if (!prom) {
|
|
32
|
+
return {
|
|
33
|
+
startTimer: () => () => { },
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const { Histogram } = prom;
|
|
37
|
+
const histogram = new Histogram({
|
|
19
38
|
name: 'http_requests_duration_seconds',
|
|
20
39
|
help: 'Duração das requisições HTTP em segundos',
|
|
21
40
|
labelNames: ['method', 'path', 'status_code'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.provider.js","sourceRoot":"","sources":["../../../../src/features/metrics/metrics.provider.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"metrics.provider.js","sourceRoot":"","sources":["../../../../src/features/metrics/metrics.provider.ts"],"names":[],"mappings":";;;AAAA,2CAAkD;AAClD,qDAA4E;AAC5E,uDAAoD;AAEpD,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,mBAAmB,CAAC,CAAC;AAElC,QAAA,gBAAgB,GAAe;IAC1C;QACE,OAAO,EAAE,iCAAgB;QACzB,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,IAAI,GAAG,IAAA,uBAAU,EAA+B,aAAa,CAAC,CAAC;YACrE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CACT,0FAA0F,CAC3F,CAAC;gBACF,OAAO;oBACL,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;oBAExB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;oBACvB,WAAW,EAAE,0CAA0C;iBACjD,CAAC;YACX,CAAC;YAED,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9C,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF;IACD;QACE,OAAO,EAAE,uCAAsB;QAC/B,UAAU,EAAE,CAAC,QAAa,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,IAAA,uBAAU,EAA+B,aAAa,CAAC,CAAC;YACrE,IAAI,CAAC,IAAI,EAAE,CAAC;gBAEV,OAAO;oBACL,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC;iBACpB,CAAC;YACX,CAAC;YAED,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;gBAC9B,IAAI,EAAE,gCAAgC;gBACtC,IAAI,EAAE,0CAA0C;gBAChD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC;gBAC7C,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;aAC3C,CAAC,CAAC;YACH,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,CAAC,iCAAgB,CAAC;KAC3B;CACF,CAAC"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -4,4 +4,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
6
|
export { IndexPageOptions } from './features/index-page.factory';
|
|
7
|
-
export * from './plugins';
|
package/dist/cjs/index.js
CHANGED
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"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./rate-limiter.plugin"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./request-logger.plugin"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./typeorm-migration.plugin"), exports);
|
|
7
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { INestApplication } from '@nestjs/common';
|
|
2
|
-
import { Options as RateLimitOptions } from 'express-rate-limit';
|
|
3
2
|
import { AppInitializerPlugin } from '../core';
|
|
4
3
|
export declare class RateLimiterPlugin implements AppInitializerPlugin {
|
|
4
|
+
private readonly logger;
|
|
5
5
|
private readonly options;
|
|
6
|
-
constructor(options?: Partial<
|
|
6
|
+
constructor(options?: Partial<any>);
|
|
7
7
|
apply(app: INestApplication): void;
|
|
8
8
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RateLimiterPlugin = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const tryRequire_1 = require("../utils/tryRequire");
|
|
6
6
|
class RateLimiterPlugin {
|
|
7
|
+
logger = new common_1.Logger(RateLimiterPlugin.name);
|
|
7
8
|
options;
|
|
8
9
|
constructor(options = {}) {
|
|
9
|
-
|
|
10
|
+
this.options = {
|
|
10
11
|
windowMs: 15 * 60 * 1000,
|
|
11
12
|
limit: 100,
|
|
12
13
|
statusCode: 429,
|
|
@@ -15,10 +16,30 @@ class RateLimiterPlugin {
|
|
|
15
16
|
legacyHeaders: false,
|
|
16
17
|
...options,
|
|
17
18
|
};
|
|
18
|
-
this.options = finalOptions;
|
|
19
19
|
}
|
|
20
20
|
apply(app) {
|
|
21
|
-
|
|
21
|
+
const loaded = (0, tryRequire_1.tryRequire)('express-rate-limit');
|
|
22
|
+
if (!loaded) {
|
|
23
|
+
this.logger.warn('[nest-initializer] express-rate-limit não encontrado — rate limiter desabilitado.');
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const rateLimitFn = typeof loaded === 'function'
|
|
27
|
+
? loaded
|
|
28
|
+
: typeof loaded.default === 'function'
|
|
29
|
+
? loaded.default
|
|
30
|
+
: typeof loaded.rateLimit === 'function'
|
|
31
|
+
? loaded.rateLimit
|
|
32
|
+
: null;
|
|
33
|
+
if (!rateLimitFn) {
|
|
34
|
+
this.logger.warn('[nest-initializer] express-rate-limit importado, mas não contém função chamável — rate limiter desabilitado.');
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const middleware = rateLimitFn(this.options);
|
|
38
|
+
if (!middleware) {
|
|
39
|
+
this.logger.warn('[nest-initializer] express-rate-limit retornou um middleware falsy — ignorando.');
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
app.use(middleware);
|
|
22
43
|
}
|
|
23
44
|
}
|
|
24
45
|
exports.RateLimiterPlugin = RateLimiterPlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.plugin.js","sourceRoot":"","sources":["../../../src/plugins/rate-limiter.plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rate-limiter.plugin.js","sourceRoot":"","sources":["../../../src/plugins/rate-limiter.plugin.ts"],"names":[],"mappings":";;;AACA,2CAA0D;AAE1D,oDAAiD;AAEjD,MAAa,iBAAiB;IACX,MAAM,GAAG,IAAI,eAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAM;IAE9B,YAAY,UAAwB,EAAE;QACpC,IAAI,CAAC,OAAO,GAAG;YACb,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YACxB,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,GAAG;YACf,OAAO,EACL,mEAAmE;YACrE,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;YACpB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAqB;QAEzB,MAAM,MAAM,GAAG,IAAA,uBAAU,EAAM,oBAAoB,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,mFAAmF,CACpF,CAAC;YACF,OAAO;QACT,CAAC;QAGD,MAAM,WAAW,GACf,OAAO,MAAM,KAAK,UAAU;YAC1B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU;gBACpC,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU;oBACtC,CAAC,CAAC,MAAM,CAAC,SAAS;oBAClB,CAAC,CAAC,IAAI,CAAC;QAEf,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,8GAA8G,CAC/G,CAAC;YACF,OAAO;QACT,CAAC;QAGD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,iFAAiF,CAClF,CAAC;YACF,OAAO;QACT,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;CACF;AAvDD,8CAuDC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { INestApplication } from '@nestjs/common';
|
|
2
2
|
import { AppInitializerPlugin } from '../core';
|
|
3
3
|
export declare class TypeOrmMigrationPlugin implements AppInitializerPlugin {
|
|
4
|
+
private readonly options;
|
|
4
5
|
private readonly logger;
|
|
6
|
+
constructor(options?: {
|
|
7
|
+
runMigrations?: boolean;
|
|
8
|
+
});
|
|
5
9
|
apply(app: INestApplication): Promise<void>;
|
|
6
10
|
}
|
|
@@ -2,19 +2,53 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TypeOrmMigrationPlugin = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
|
-
const
|
|
5
|
+
const tryRequire_1 = require("../utils/tryRequire");
|
|
6
6
|
class TypeOrmMigrationPlugin {
|
|
7
|
+
options;
|
|
7
8
|
logger = new common_1.Logger(TypeOrmMigrationPlugin.name);
|
|
9
|
+
constructor(options = {}) {
|
|
10
|
+
this.options = options;
|
|
11
|
+
}
|
|
8
12
|
async apply(app) {
|
|
13
|
+
const typeorm = (0, tryRequire_1.tryRequire)('typeorm');
|
|
14
|
+
if (!typeorm) {
|
|
15
|
+
this.logger.warn('typeorm não encontrado — pulando execução de migrations.');
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const DataSourceClass = typeorm.DataSource;
|
|
19
|
+
let dataSource = null;
|
|
20
|
+
try {
|
|
21
|
+
dataSource = app.get(DataSourceClass);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
this.logger.error('Falha ao obter DataSource ou executar migrations.', err);
|
|
25
|
+
throw err;
|
|
26
|
+
}
|
|
27
|
+
if (!dataSource) {
|
|
28
|
+
try {
|
|
29
|
+
dataSource = app.get('DataSource', { strict: false });
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
this.logger.error('Falha ao obter DataSource ou executar migrations.', err);
|
|
33
|
+
throw err;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (!dataSource) {
|
|
37
|
+
this.logger.warn('DataSource do TypeORM não encontrado no container — pulando migrations.');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (this.options.runMigrations === false) {
|
|
41
|
+
this.logger.log('Execução de migrations desativada via opções.');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.logger.log('Iniciando execução das migrations do banco de dados...');
|
|
9
45
|
try {
|
|
10
|
-
const dataSource = app.get(typeorm_1.DataSource);
|
|
11
|
-
this.logger.log('Iniciando execução das migrations do banco de dados...');
|
|
12
46
|
await dataSource.runMigrations();
|
|
13
47
|
this.logger.log('Migrations executadas com sucesso.');
|
|
14
48
|
}
|
|
15
|
-
catch (
|
|
16
|
-
this.logger.error('Falha ao obter DataSource ou executar migrations.',
|
|
17
|
-
throw
|
|
49
|
+
catch (err) {
|
|
50
|
+
this.logger.error('Falha ao obter DataSource ou executar migrations.', err);
|
|
51
|
+
throw err;
|
|
18
52
|
}
|
|
19
53
|
}
|
|
20
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeorm-migration.plugin.js","sourceRoot":"","sources":["../../../src/plugins/typeorm-migration.plugin.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;
|
|
1
|
+
{"version":3,"file":"typeorm-migration.plugin.js","sourceRoot":"","sources":["../../../src/plugins/typeorm-migration.plugin.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAE1D,oDAAiD;AAEjD,MAAa,sBAAsB;IAGJ;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAElE,YAA6B,UAAuC,EAAE;QAAzC,YAAO,GAAP,OAAO,CAAkC;IAAG,CAAC;IAE1E,KAAK,CAAC,KAAK,CAAC,GAAqB;QAC/B,MAAM,OAAO,GAAG,IAAA,uBAAU,EAA2B,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,0DAA0D,CAC3D,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;QAC3C,IAAI,UAAU,GAAgD,IAAI,CAAC;QAInE,IAAI,CAAC;YACH,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAEb,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mDAAmD,EACnD,GAAU,CACX,CAAC;YACF,MAAM,GAAG,CAAC;QACZ,CAAC;QAGD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBAEb,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mDAAmD,EACnD,GAAU,CACX,CAAC;gBACF,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,yEAAyE,CAC1E,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QAE1E,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAEb,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mDAAmD,EACnD,GAAU,CACX,CAAC;YACF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAtED,wDAsEC"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import { AppInitializerPlugin } from '../core';
|
|
1
|
+
type TypeOrmModuleOptions = any;
|
|
3
2
|
export interface TypeOrmStarterOptions {
|
|
4
3
|
autoLoadEntities?: boolean;
|
|
5
4
|
runMigrationsOnStartup?: boolean;
|
|
6
5
|
databaseUrlEnvKey?: string;
|
|
7
6
|
typeOrmOptions?: Omit<TypeOrmModuleOptions, 'url' | 'autoLoadEntities' | 'synchronize'>;
|
|
8
7
|
}
|
|
9
|
-
export declare function createTypeOrmStarter(options?: TypeOrmStarterOptions):
|
|
10
|
-
|
|
11
|
-
plugins: AppInitializerPlugin[];
|
|
12
|
-
};
|
|
8
|
+
export declare function createTypeOrmStarter(options?: TypeOrmStarterOptions): any;
|
|
9
|
+
export {};
|
|
@@ -2,11 +2,21 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createTypeOrmStarter = createTypeOrmStarter;
|
|
4
4
|
const config_1 = require("@nestjs/config");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
5
|
+
const tryRequire_1 = require("../utils/tryRequire");
|
|
6
|
+
const typeorm_migration_plugin_1 = require("../plugins/typeorm-migration.plugin");
|
|
7
7
|
function createTypeOrmStarter(options = {}) {
|
|
8
|
+
const TypeOrmMod = (0, tryRequire_1.tryRequire)('@nestjs/typeorm');
|
|
9
|
+
if (!TypeOrmMod) {
|
|
10
|
+
return {
|
|
11
|
+
module: class EmptyTypeOrmModule {
|
|
12
|
+
},
|
|
13
|
+
imports: [],
|
|
14
|
+
providers: [],
|
|
15
|
+
};
|
|
16
|
+
}
|
|
8
17
|
const { autoLoadEntities = true, runMigrationsOnStartup = false, databaseUrlEnvKey = 'DATABASE_URL', typeOrmOptions = {}, } = options;
|
|
9
|
-
const
|
|
18
|
+
const { TypeOrmModule } = TypeOrmMod;
|
|
19
|
+
const typeOrmDynamicModule = TypeOrmModule.forRootAsync({
|
|
10
20
|
imports: [],
|
|
11
21
|
inject: [config_1.ConfigService],
|
|
12
22
|
useFactory: (configService) => ({
|
|
@@ -18,7 +28,7 @@ function createTypeOrmStarter(options = {}) {
|
|
|
18
28
|
});
|
|
19
29
|
const plugins = [];
|
|
20
30
|
if (runMigrationsOnStartup) {
|
|
21
|
-
plugins.push(new
|
|
31
|
+
plugins.push(new typeorm_migration_plugin_1.TypeOrmMigrationPlugin());
|
|
22
32
|
}
|
|
23
33
|
return {
|
|
24
34
|
module: typeOrmDynamicModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeorm.starter.js","sourceRoot":"","sources":["../../../src/starters/typeorm.starter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"typeorm.starter.js","sourceRoot":"","sources":["../../../src/starters/typeorm.starter.ts"],"names":[],"mappings":";;AAwBA,oDAyCC;AAjED,2CAA+C;AAC/C,oDAAiD;AAEjD,kFAA6E;AAqB7E,SAAgB,oBAAoB,CAAC,UAAiC,EAAE;IACtE,MAAM,UAAU,GACd,IAAA,uBAAU,EAAmC,iBAAiB,CAAC,CAAC;IAClE,IAAI,CAAC,UAAU,EAAE,CAAC;QAEhB,OAAO;YACL,MAAM,EAAE,MAAM,kBAAkB;aAAG;YACnC,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;SACP,CAAC;IACX,CAAC;IAED,MAAM,EACJ,gBAAgB,GAAG,IAAI,EACvB,sBAAsB,GAAG,KAAK,EAC9B,iBAAiB,GAAG,cAAc,EAClC,cAAc,GAAG,EAAE,GACpB,GAAG,OAAO,CAAC;IAEZ,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;IAErC,MAAM,oBAAoB,GAAG,aAAa,CAAC,YAAY,CAAC;QACtD,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,CAAC,sBAAa,CAAC;QACvB,UAAU,EAAE,CAAC,aAA4B,EAAO,EAAE,CAAC,CAAC;YAClD,GAAG,EAAE,aAAa,CAAC,GAAG,CAAS,iBAAiB,CAAC;YACjD,gBAAgB,EAAE,gBAAgB;YAClC,WAAW,EAAE,KAAK;YAClB,GAAG,cAAc;SAClB,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,iDAAsB,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,MAAM,EAAE,oBAAoB;QAC5B,OAAO,EAAE,OAAO;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function tryRequire<T = any>(moduleName: string): T | null;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tryRequire = tryRequire;
|
|
4
|
+
function tryRequire(moduleName) {
|
|
5
|
+
try {
|
|
6
|
+
return require(moduleName);
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
if (err &&
|
|
10
|
+
(err.code === 'MODULE_NOT_FOUND' || err.code === 'ERR_MODULE_NOT_FOUND')) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
throw err;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=tryRequire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tryRequire.js","sourceRoot":"","sources":["../../../src/utils/tryRequire.ts"],"names":[],"mappings":";;AAAA,gCAcC;AAdD,SAAgB,UAAU,CAAU,UAAkB;IACpD,IAAI,CAAC;QAGH,OAAO,OAAO,CAAC,UAAU,CAAM,CAAC;IAClC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IACE,GAAG;YACH,CAAC,GAAG,CAAC,IAAI,KAAK,kBAAkB,IAAI,GAAG,CAAC,IAAI,KAAK,sBAAsB,CAAC,EACxE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { TerminusHealthCheckOptions } from '../features';
|
|
|
7
7
|
import { CachingStarterOptions, MongooseStarterOptions, TypeOrmStarterOptions } from '../starters';
|
|
8
8
|
import { ResponseMapper } from '../interceptors/response-pattern.interceptor';
|
|
9
9
|
import { IndexPageOptions } from '../features/index-page.factory';
|
|
10
|
+
import { NestApplicationOptions } from '@nestjs/common/interfaces/nest-application-options.interface';
|
|
10
11
|
export interface AppInitializerPlugin {
|
|
11
12
|
apply(app: INestApplication): Promise<void> | void;
|
|
12
13
|
}
|
|
@@ -28,6 +29,7 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
|
|
|
28
29
|
private app;
|
|
29
30
|
private readonly module;
|
|
30
31
|
private readonly adapter?;
|
|
32
|
+
private readonly options?;
|
|
31
33
|
private readonly logger;
|
|
32
34
|
private port;
|
|
33
35
|
private globalPrefix?;
|
|
@@ -49,8 +51,8 @@ export declare class AppInitializer<T extends INestApplication = INestApplicatio
|
|
|
49
51
|
when(condition: boolean, configure: (builder: this) => void): this;
|
|
50
52
|
withHealthCheck(options: TerminusHealthCheckOptions): this;
|
|
51
53
|
withMetrics(): this;
|
|
52
|
-
static bootstrap<T extends INestApplication = INestApplication>(module: Type, configurator: AppConfigurator<T
|
|
53
|
-
static bootstrap<T extends INestApplication = INestApplication>(module: Type, adapter: AbstractHttpAdapter, configurator: AppConfigurator<T
|
|
54
|
+
static bootstrap<T extends INestApplication = INestApplication>(module: Type, configurator: AppConfigurator<T>, options?: NestApplicationOptions): Promise<void>;
|
|
55
|
+
static bootstrap<T extends INestApplication = INestApplication>(module: Type, adapter: AbstractHttpAdapter, configurator: AppConfigurator<T>, options?: NestApplicationOptions): Promise<void>;
|
|
54
56
|
onPort(port: number): this;
|
|
55
57
|
withPlugin(plugin: AppInitializerPlugin): this;
|
|
56
58
|
withVersioning(options: VersioningOptions): this;
|