@nestjs-mod/common
Version:
A collection of utilities for unifying NestJS applications and modules
145 lines • 7.13 kB
JavaScript
;
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