UNPKG

@nestjs-mod/common

Version:

A collection of utilities for unifying NestJS applications and modules

145 lines 7.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DefaultNestApplicationInitializer = exports.DefaultNestApplicationInitializerConfig = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); const core_1 = require("@nestjs/core"); const decorators_1 = require("../../../config-model/decorators"); const types_1 = require("../../../nest-module/types"); const utils_1 = require("../../../nest-module/utils"); let DefaultNestApplicationInitializerConfig = class DefaultNestApplicationInitializerConfig { }; exports.DefaultNestApplicationInitializerConfig = DefaultNestApplicationInitializerConfig; tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'CORS options from [CORS package](https://github.com/expressjs/cors#configuration-options)', default: { credentials: true, // eslint-disable-next-line @typescript-eslint/no-explicit-any origin: (req, callback) => { callback(null, true); }, methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', }, }) // eslint-disable-next-line @typescript-eslint/no-explicit-any , tslib_1.__metadata("design:type", Object) ], DefaultNestApplicationInitializerConfig.prototype, "cors", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'Whether to use underlying platform body parser.', }), tslib_1.__metadata("design:type", Boolean) ], DefaultNestApplicationInitializerConfig.prototype, "bodyParser", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'Set of configurable HTTPS options' }), tslib_1.__metadata("design:type", Object) ], DefaultNestApplicationInitializerConfig.prototype, "httpsOptions", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'Whether to register the raw request body on the request. Use `req.rawBody`.', }), tslib_1.__metadata("design:type", Boolean) ], DefaultNestApplicationInitializerConfig.prototype, "rawBody", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'Default logger for application', }), tslib_1.__metadata("design:type", Object) ], DefaultNestApplicationInitializerConfig.prototype, "defaultLogger", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'Specifies the logger to use. Pass `false` to turn off logging.', }), tslib_1.__metadata("design:type", Object) ], DefaultNestApplicationInitializerConfig.prototype, "logger", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'Whether to abort the process on Error. By default, the process is exited. Pass `false` to override the default behavior. If `false` is passed, Nest will not exit the application and instead will rethrow the exception. @default true', }), tslib_1.__metadata("design:type", Boolean) ], DefaultNestApplicationInitializerConfig.prototype, "abortOnError", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'If enabled, logs will be buffered until the "Logger#flush" method is called. @default false', }), tslib_1.__metadata("design:type", Boolean) ], DefaultNestApplicationInitializerConfig.prototype, "bufferLogs", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'If enabled, logs will be automatically flushed and buffer detached when application initialization process either completes or fails. @default true', }), tslib_1.__metadata("design:type", Boolean) ], DefaultNestApplicationInitializerConfig.prototype, "autoFlushLogs", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'Whether to run application in the preview mode. In the preview mode, providers/controllers are not instantiated & resolved. @default false', }), tslib_1.__metadata("design:type", Boolean) ], DefaultNestApplicationInitializerConfig.prototype, "preview", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'Whether to generate a serialized graph snapshot. @default false', }), tslib_1.__metadata("design:type", Boolean) ], DefaultNestApplicationInitializerConfig.prototype, "snapshot", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'Force close open HTTP connections. Useful if restarting your application hangs due to keep-alive connections in the HTTP adapter.', default: true, }), tslib_1.__metadata("design:type", Boolean) ], DefaultNestApplicationInitializerConfig.prototype, "forceCloseConnections", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'Method for additional actions before listening', }), tslib_1.__metadata("design:type", Function) ], DefaultNestApplicationInitializerConfig.prototype, "preCreateApplication", void 0); tslib_1.__decorate([ (0, decorators_1.ConfigModelProperty)({ description: 'Method for additional actions after listening', }), tslib_1.__metadata("design:type", Function) ], DefaultNestApplicationInitializerConfig.prototype, "postCreateApplication", void 0); exports.DefaultNestApplicationInitializerConfig = DefaultNestApplicationInitializerConfig = tslib_1.__decorate([ (0, decorators_1.ConfigModel)() ], DefaultNestApplicationInitializerConfig); exports.DefaultNestApplicationInitializer = (0, utils_1.createNestModule)({ moduleName: 'DefaultNestApplicationInitializer', moduleDescription: 'Default NestJS application initializer.', moduleCategory: types_1.NestModuleCategory.system, staticConfigurationModel: DefaultNestApplicationInitializerConfig, // creating application wrapApplication: async ({ app, modules, current }) => { if (current.staticConfiguration?.preCreateApplication) { await current.staticConfiguration.preCreateApplication({ app, current, }); } let DefaultNestApp = class DefaultNestApp { }; DefaultNestApp = tslib_1.__decorate([ (0, common_1.Module)({ imports: (0, utils_1.collectRootNestModules)(modules), }) ], DefaultNestApp); if (app) { throw new Error('The application has already been initialized'); } app = await core_1.NestFactory.create(DefaultNestApp, current?.staticConfiguration); if (current.staticConfiguration?.postCreateApplication) { await current.staticConfiguration.postCreateApplication({ app, current, }); } if (current.staticConfiguration?.defaultLogger) { app.useLogger(current.staticConfiguration?.defaultLogger); } return app; }, }).DefaultNestApplicationInitializer; //# sourceMappingURL=default-nest-application-initializer.js.map