@steroidsjs/nest 1.6.7 → 1.7.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/infrastructure/applications/AppModule.d.ts +2 -0
- package/infrastructure/applications/AppModule.js +7 -0
- package/infrastructure/applications/AppModule.js.map +1 -0
- package/infrastructure/applications/BaseApplication.d.ts +8 -0
- package/infrastructure/applications/BaseApplication.js +24 -0
- package/infrastructure/applications/BaseApplication.js.map +1 -0
- package/infrastructure/applications/IAppModuleConfig.d.ts +17 -0
- package/infrastructure/applications/IAppModuleConfig.js +3 -0
- package/infrastructure/applications/IAppModuleConfig.js.map +1 -0
- package/infrastructure/applications/base/config.d.ts +10 -0
- package/infrastructure/applications/base/config.js +37 -0
- package/infrastructure/applications/base/config.js.map +1 -0
- package/infrastructure/applications/console/ConsoleApplication.d.ts +8 -0
- package/infrastructure/applications/console/ConsoleApplication.js +28 -0
- package/infrastructure/applications/console/ConsoleApplication.js.map +1 -0
- package/infrastructure/applications/console/IConsoleAppModuleConfig.d.ts +4 -0
- package/infrastructure/applications/console/IConsoleAppModuleConfig.js +3 -0
- package/infrastructure/applications/console/IConsoleAppModuleConfig.js.map +1 -0
- package/infrastructure/applications/console/config.d.ts +13 -0
- package/infrastructure/applications/console/config.js +26 -0
- package/infrastructure/applications/console/config.js.map +1 -0
- package/infrastructure/applications/rest/IRestAppModuleConfig.d.ts +8 -0
- package/infrastructure/applications/rest/IRestAppModuleConfig.js +3 -0
- package/infrastructure/applications/rest/IRestAppModuleConfig.js.map +1 -0
- package/infrastructure/applications/rest/RestApplication.d.ts +19 -0
- package/infrastructure/applications/rest/RestApplication.js +110 -0
- package/infrastructure/applications/rest/RestApplication.js.map +1 -0
- package/infrastructure/applications/rest/SchemaSerializer.d.ts +4 -0
- package/infrastructure/applications/rest/SchemaSerializer.js +12 -0
- package/infrastructure/applications/rest/SchemaSerializer.js.map +1 -0
- package/infrastructure/applications/rest/SentryExceptionFilter.d.ts +4 -0
- package/infrastructure/applications/rest/SentryExceptionFilter.js +64 -0
- package/infrastructure/applications/rest/SentryExceptionFilter.js.map +1 -0
- package/infrastructure/applications/rest/config.d.ts +18 -0
- package/infrastructure/applications/rest/config.js +17 -0
- package/infrastructure/applications/rest/config.js.map +1 -0
- package/infrastructure/applications/rest/exceptions/RequestExecutionException.d.ts +8 -0
- package/infrastructure/applications/rest/exceptions/RequestExecutionException.js +18 -0
- package/infrastructure/applications/rest/exceptions/RequestExecutionException.js.map +1 -0
- package/infrastructure/applications/rest/filters/RequestExecutionExceptionFilter.d.ts +5 -0
- package/infrastructure/applications/rest/filters/RequestExecutionExceptionFilter.js +30 -0
- package/infrastructure/applications/rest/filters/RequestExecutionExceptionFilter.js.map +1 -0
- package/infrastructure/applications/rest/filters/ValidationExceptionFilterCustom.d.ts +10 -0
- package/infrastructure/applications/rest/filters/ValidationExceptionFilterCustom.js +49 -0
- package/infrastructure/applications/rest/filters/ValidationExceptionFilterCustom.js.map +1 -0
- package/infrastructure/commands/MigrateCommand.js.map +1 -1
- package/infrastructure/commands/entity-generator/EntityCodeGenerateCommand.js.map +1 -1
- package/infrastructure/decorators/Computable.d.ts +1 -1
- package/infrastructure/decorators/Module.d.ts +9 -0
- package/infrastructure/decorators/Module.js +32 -0
- package/infrastructure/decorators/Module.js.map +1 -0
- package/infrastructure/decorators/Transform.d.ts +2 -2
- package/infrastructure/decorators/fields/BaseField.d.ts +2 -2
- package/infrastructure/decorators/fields/DateField.js +1 -1
- package/infrastructure/decorators/fields/DateField.js.map +1 -1
- package/infrastructure/decorators/fields/DecimalField.js +1 -1
- package/infrastructure/decorators/fields/DecimalField.js.map +1 -1
- package/infrastructure/decorators/fields/RelationField.d.ts +1 -1
- package/infrastructure/decorators/fields/index.d.ts +1 -1
- package/infrastructure/filters/UserExceptionFilter.js.map +1 -1
- package/infrastructure/filters/ValidationExceptionFilter.js.map +1 -1
- package/infrastructure/helpers/ModuleHelper.d.ts +10 -1
- package/infrastructure/helpers/ModuleHelper.js +27 -1
- package/infrastructure/helpers/ModuleHelper.js.map +1 -1
- package/infrastructure/helpers/typeORM/ConditionHelperTypeORM.d.ts +4 -4
- package/infrastructure/pipes/CreateDtoPipe.js.map +1 -1
- package/infrastructure/schemas/SearchSchema.js.map +1 -1
- package/infrastructure/tests/app/models/ArticleModel.js.map +1 -1
- package/infrastructure/tests/app/models/CommentModel.js.map +1 -1
- package/infrastructure/tests/app/models/FileModel.js.map +1 -1
- package/infrastructure/tests/app/models/ImageModel.js.map +1 -1
- package/infrastructure/tests/app/models/TagModel.js.map +1 -1
- package/infrastructure/tests/app/models/UserInfoModel.js.map +1 -1
- package/infrastructure/tests/app/models/UserModel.js.map +1 -1
- package/infrastructure/tests/app/repositories/ArticleRepository.js.map +1 -1
- package/infrastructure/tests/app/repositories/CommentRepository.js.map +1 -1
- package/infrastructure/tests/app/repositories/FileRepository.js.map +1 -1
- package/infrastructure/tests/app/repositories/ImageRepository.js.map +1 -1
- package/infrastructure/tests/app/repositories/TagRepository.js.map +1 -1
- package/infrastructure/tests/app/repositories/UserRepository.js.map +1 -1
- package/infrastructure/tests/app/schemas/ArticleSchema.js.map +1 -1
- package/infrastructure/tests/app/schemas/FileSchema.js.map +1 -1
- package/infrastructure/tests/app/schemas/ImageSchema.js.map +1 -1
- package/infrastructure/tests/app/schemas/UserInfoSchema.js.map +1 -1
- package/infrastructure/tests/app/schemas/UserSchema.js.map +1 -1
- package/infrastructure/tests/app/services/ArticleService.js.map +1 -1
- package/infrastructure/tests/app/services/CommentService.js.map +1 -1
- package/infrastructure/tests/app/services/FileService.js.map +1 -1
- package/infrastructure/tests/app/services/ImageService.js.map +1 -1
- package/infrastructure/tests/app/services/TagService.js.map +1 -1
- package/infrastructure/tests/app/services/UserService.js.map +1 -1
- package/infrastructure/tests/app/tables/ArticleTable.js.map +1 -1
- package/infrastructure/tests/app/tables/CommentTable.js.map +1 -1
- package/infrastructure/tests/app/tables/FileTable.js.map +1 -1
- package/infrastructure/tests/app/tables/ImageTable.js.map +1 -1
- package/infrastructure/tests/app/tables/TagTable.js.map +1 -1
- package/infrastructure/tests/app/tables/UserInfoTable.js.map +1 -1
- package/infrastructure/tests/app/tables/UserTable.js.map +1 -1
- package/infrastructure/tests/bootstrap.js +0 -6
- package/infrastructure/tests/bootstrap.js.map +1 -1
- package/package.json +25 -25
- package/tsconfig.tsbuildinfo +1 -1
- package/usecases/base/SearchQuery.d.ts +1 -1
- package/usecases/dtos/SearchInputDto.js.map +1 -1
- package/usecases/interfaces/ICrudRepository.d.ts +2 -2
- package/usecases/interfaces/IDeepPartial.d.ts +1 -1
- package/usecases/interfaces/IType.d.ts +3 -0
- package/usecases/interfaces/IType.js +3 -0
- package/usecases/interfaces/IType.js.map +1 -0
- package/usecases/services/CrudService.d.ts +4 -4
- package/usecases/services/CrudService.js.map +1 -1
- package/usecases/services/ReadService.d.ts +4 -4
- package/usecases/services/ReadService.js.map +1 -1
- package/usecases/validators/Validator.d.ts +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppModule.js","sourceRoot":"","sources":["../../../src/infrastructure/applications/AppModule.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;CAAG;AAAzB,8BAAyB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseApplication = void 0;
|
|
4
|
+
const dotenv = require("dotenv");
|
|
5
|
+
const ModuleHelper_1 = require("../helpers/ModuleHelper");
|
|
6
|
+
class BaseApplication {
|
|
7
|
+
async init() {
|
|
8
|
+
this.initEnv();
|
|
9
|
+
this.initConfig();
|
|
10
|
+
this.initModules();
|
|
11
|
+
}
|
|
12
|
+
initEnv() {
|
|
13
|
+
process.env.APP_IS_CLI = '1';
|
|
14
|
+
process.env.APP_ENVIRONMENT = process.env.APP_ENVIRONMENT || 'dev';
|
|
15
|
+
dotenv.config();
|
|
16
|
+
}
|
|
17
|
+
initConfig() {
|
|
18
|
+
}
|
|
19
|
+
initModules() {
|
|
20
|
+
ModuleHelper_1.ModuleHelper.runInitializers();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.BaseApplication = BaseApplication;
|
|
24
|
+
//# sourceMappingURL=BaseApplication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../../../src/infrastructure/applications/BaseApplication.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,0DAAqD;AAErD,MAAsB,eAAe;IAGvB,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAES,OAAO;QACb,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK,CAAC;QAEnE,MAAM,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;IAES,UAAU;IAEpB,CAAC;IAES,WAAW;QACjB,2BAAY,CAAC,eAAe,EAAE,CAAC;IACnC,CAAC;CAGJ;AAzBD,0CAyBC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface IAppModuleConfig {
|
|
2
|
+
name: string;
|
|
3
|
+
title: string;
|
|
4
|
+
version: string;
|
|
5
|
+
database?: {
|
|
6
|
+
host: string;
|
|
7
|
+
port: number;
|
|
8
|
+
database: string;
|
|
9
|
+
username: string;
|
|
10
|
+
password: string;
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
};
|
|
13
|
+
sentry?: {
|
|
14
|
+
dsn: string;
|
|
15
|
+
environment: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IAppModuleConfig.js","sourceRoot":"","sources":["../../../src/infrastructure/applications/IAppModuleConfig.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AppModule } from '../AppModule';
|
|
2
|
+
import { IAppModuleConfig } from '../IAppModuleConfig';
|
|
3
|
+
declare const _default: {
|
|
4
|
+
rootTarget: typeof AppModule;
|
|
5
|
+
config: () => IAppModuleConfig;
|
|
6
|
+
module: (config: IAppModuleConfig) => {
|
|
7
|
+
imports: import("@nestjs/common").DynamicModule[];
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const nest_typeorm_1 = require("@steroidsjs/nest-typeorm");
|
|
4
|
+
const nestjs_sentry_1 = require("@ntegral/nestjs-sentry");
|
|
5
|
+
const ModuleHelper_1 = require("../../helpers/ModuleHelper");
|
|
6
|
+
const AppModule_1 = require("../AppModule");
|
|
7
|
+
const DatabaseNamingStrategy_1 = require("../../base/DatabaseNamingStrategy");
|
|
8
|
+
exports.default = {
|
|
9
|
+
rootTarget: AppModule_1.AppModule,
|
|
10
|
+
config: () => ({
|
|
11
|
+
name: 'app',
|
|
12
|
+
title: 'Application',
|
|
13
|
+
version: '1.0',
|
|
14
|
+
database: {
|
|
15
|
+
type: 'postgres',
|
|
16
|
+
host: process.env.APP_DATABASE_HOST,
|
|
17
|
+
port: parseInt(process.env.APP_DATABASE_PORT, 10),
|
|
18
|
+
database: process.env.APP_DATABASE_NAME,
|
|
19
|
+
username: process.env.APP_DATABASE_USERNAME,
|
|
20
|
+
password: process.env.APP_DATABASE_PASSWORD,
|
|
21
|
+
synchronize: false,
|
|
22
|
+
migrationsRun: false,
|
|
23
|
+
logging: ['schema', 'warn', 'error', 'migration'],
|
|
24
|
+
namingStrategy: new DatabaseNamingStrategy_1.DatabaseNamingStrategy(),
|
|
25
|
+
},
|
|
26
|
+
}),
|
|
27
|
+
module: (config) => ({
|
|
28
|
+
imports: [
|
|
29
|
+
nest_typeorm_1.TypeOrmModule.forRoot(Object.assign(Object.assign({}, config.database), { entities: ModuleHelper_1.ModuleHelper.getEntities() })),
|
|
30
|
+
config.sentry && nestjs_sentry_1.SentryModule.forRoot({
|
|
31
|
+
dsn: config.sentry.dsn,
|
|
32
|
+
environment: config.sentry.environment || process.env.APP_ENVIRONMENT,
|
|
33
|
+
}),
|
|
34
|
+
].filter(Boolean),
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/base/config.ts"],"names":[],"mappings":";;AAAA,2DAA6E;AAE7E,0DAAoD;AACpD,6DAAwD;AACxD,4CAAuC;AAEvC,8EAAyE;AAEzE,kBAAe;IACX,UAAU,EAAE,qBAAS;IACrB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;YACnC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACjD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;YACvC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAC3C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAC3C,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAgB;YAChE,cAAc,EAAE,IAAI,+CAAsB,EAAE;SAClB;KACZ,CAAA;IACtB,MAAM,EAAE,CAAC,MAAwB,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,EAAE;YACL,4BAAa,CAAC,OAAO,CAAC,gCACf,MAAM,CAAC,QAAQ,KAClB,QAAQ,EAAE,2BAAY,CAAC,WAAW,EAAE,GACf,CAAC;YAC1B,MAAM,CAAC,MAAM,IAAI,4BAAY,CAAC,OAAO,CAAC;gBAClC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;gBACtB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;aACxE,CAAC;SACL,CAAC,MAAM,CAAC,OAAO,CAAC;KACpB,CAAC;CACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseApplication } from '../BaseApplication';
|
|
2
|
+
import { AppModule } from '../AppModule';
|
|
3
|
+
export declare class ConsoleApplication extends BaseApplication {
|
|
4
|
+
protected _app: any;
|
|
5
|
+
protected _moduleClass: any;
|
|
6
|
+
constructor(moduleClass?: typeof AppModule);
|
|
7
|
+
start(): Promise<void>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConsoleApplication = void 0;
|
|
4
|
+
const core_1 = require("@nestjs/core");
|
|
5
|
+
const nestjs_command_1 = require("nestjs-command");
|
|
6
|
+
const BaseApplication_1 = require("../BaseApplication");
|
|
7
|
+
const AppModule_1 = require("../AppModule");
|
|
8
|
+
class ConsoleApplication extends BaseApplication_1.BaseApplication {
|
|
9
|
+
constructor(moduleClass = AppModule_1.AppModule) {
|
|
10
|
+
super();
|
|
11
|
+
this._moduleClass = moduleClass;
|
|
12
|
+
}
|
|
13
|
+
async start() {
|
|
14
|
+
await this.init();
|
|
15
|
+
this._app = await core_1.NestFactory.createApplicationContext(this._moduleClass, {
|
|
16
|
+
logger: ['warn', 'error'],
|
|
17
|
+
});
|
|
18
|
+
try {
|
|
19
|
+
await this._app.select(nestjs_command_1.CommandModule).get(nestjs_command_1.CommandService).exec();
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error(error);
|
|
23
|
+
}
|
|
24
|
+
await this._app.close();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.ConsoleApplication = ConsoleApplication;
|
|
28
|
+
//# sourceMappingURL=ConsoleApplication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsoleApplication.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/console/ConsoleApplication.ts"],"names":[],"mappings":";;;AAAA,uCAAyC;AACzC,mDAA6D;AAC7D,wDAAmD;AACnD,4CAAuC;AAEvC,MAAa,kBAAmB,SAAQ,iCAAe;IAKnD,YAAY,WAAW,GAAG,qBAAS;QAC/B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,IAAI,CAAC,IAAI,GAAG,MAAM,kBAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE;YACtE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC5B,CAAC,CAAC;QAEH,IAAI;YACA,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,8BAAa,CAAC,CAAC,GAAG,CAAC,+BAAc,CAAC,CAAC,IAAI,EAAE,CAAC;SACpE;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACxB;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACJ;AA1BD,gDA0BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IConsoleAppModuleConfig.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/console/IConsoleAppModuleConfig.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IConsoleAppModuleConfig } from './IConsoleAppModuleConfig';
|
|
2
|
+
import { EntityCodeGenerateCommand } from '../../commands/entity-generator/EntityCodeGenerateCommand';
|
|
3
|
+
import { MigrateCommand } from '../../commands/MigrateCommand';
|
|
4
|
+
import { CommandModule } from 'nestjs-command';
|
|
5
|
+
declare const _default: {
|
|
6
|
+
config: () => IConsoleAppModuleConfig;
|
|
7
|
+
module: (config: IConsoleAppModuleConfig) => {
|
|
8
|
+
imports: (import("@nestjs/common").DynamicModule | typeof CommandModule)[];
|
|
9
|
+
providers: (typeof EntityCodeGenerateCommand | typeof MigrateCommand)[];
|
|
10
|
+
};
|
|
11
|
+
rootTarget: typeof import("../AppModule").AppModule;
|
|
12
|
+
};
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const path_1 = require("path");
|
|
4
|
+
const fs = require("node:fs");
|
|
5
|
+
const config_1 = require("../base/config");
|
|
6
|
+
const EntityCodeGenerateCommand_1 = require("../../commands/entity-generator/EntityCodeGenerateCommand");
|
|
7
|
+
const MigrateCommand_1 = require("../../commands/MigrateCommand");
|
|
8
|
+
const nestjs_command_1 = require("nestjs-command");
|
|
9
|
+
const moduleNames = fs.readdirSync(process.cwd());
|
|
10
|
+
const isMigrateCommand = !!(process.argv || []).find(arg => /^migrate/.exec(arg));
|
|
11
|
+
exports.default = Object.assign(Object.assign({}, config_1.default), { config: () => {
|
|
12
|
+
const config = config_1.default.config();
|
|
13
|
+
return Object.assign(Object.assign({}, config), { database: Object.assign(Object.assign({}, config.database), { migrations: isMigrateCommand
|
|
14
|
+
? moduleNames.map(name => (0, path_1.join)(__dirname, `../${name}/infrastructure/migrations/*{.ts,.js}`))
|
|
15
|
+
: [], migrationsTableName: 'migrations' }) });
|
|
16
|
+
}, module: (config) => {
|
|
17
|
+
const module = config_1.default.module(config);
|
|
18
|
+
return Object.assign(Object.assign({}, module), { imports: [
|
|
19
|
+
...module === null || module === void 0 ? void 0 : module.imports,
|
|
20
|
+
nestjs_command_1.CommandModule,
|
|
21
|
+
], providers: [
|
|
22
|
+
EntityCodeGenerateCommand_1.EntityCodeGenerateCommand,
|
|
23
|
+
MigrateCommand_1.MigrateCommand,
|
|
24
|
+
] });
|
|
25
|
+
} });
|
|
26
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/console/config.ts"],"names":[],"mappings":";;AACA,+BAA0B;AAC1B,8BAA8B;AAC9B,2CAAwC;AAExC,yGAAoG;AACpG,kEAA6D;AAC7D,mDAA6C;AAE7C,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAClD,MAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAElF,kDACO,gBAAU,KACb,MAAM,EAAE,GAAG,EAAE;QACT,MAAM,MAAM,GAAG,gBAAU,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,gCACA,MAAM,KACT,QAAQ,EAAE,gCACH,MAAM,CAAC,QAAQ,KAClB,UAAU,EAAE,gBAAgB;oBACxB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,MAAM,IAAI,uCAAuC,CAAC,CAAC;oBAC7F,CAAC,CAAC,EAAE,EACR,mBAAmB,EAAE,YAAY,GACP,GACN,CAAC;IACjC,CAAC,EACD,MAAM,EAAE,CAAC,MAA+B,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,gBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,uCACO,MAAM,KACT,OAAO,EAAE;gBACL,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO;gBAClB,8BAAa;aAChB,EACD,SAAS,EAAE;gBACP,qDAAyB;gBACzB,+BAAc;aACjB,IACH;IACN,CAAC,IACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IRestAppModuleConfig.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/rest/IRestAppModuleConfig.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IRestAppModuleConfig } from './IRestAppModuleConfig';
|
|
2
|
+
import { BaseApplication } from '../BaseApplication';
|
|
3
|
+
import { AppModule } from '../AppModule';
|
|
4
|
+
export declare class RestApplication extends BaseApplication {
|
|
5
|
+
protected _app: any;
|
|
6
|
+
protected _moduleClass: any;
|
|
7
|
+
protected _config: IRestAppModuleConfig;
|
|
8
|
+
constructor(moduleClass?: typeof AppModule);
|
|
9
|
+
protected initConfig(): void;
|
|
10
|
+
protected initSwagger(): void;
|
|
11
|
+
protected initCors(): void;
|
|
12
|
+
protected initPipes(): void;
|
|
13
|
+
protected initFilters(): void;
|
|
14
|
+
protected initSentry(): void;
|
|
15
|
+
protected initInterceptors(): void;
|
|
16
|
+
init(): Promise<void>;
|
|
17
|
+
start(): Promise<void>;
|
|
18
|
+
getApp(): any;
|
|
19
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RestApplication = void 0;
|
|
4
|
+
const core_1 = require("@nestjs/core");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const SentryExceptionFilter_1 = require("./SentryExceptionFilter");
|
|
8
|
+
const SchemaSerializer_1 = require("./SchemaSerializer");
|
|
9
|
+
const CreateDtoPipe_1 = require("../../pipes/CreateDtoPipe");
|
|
10
|
+
const ValidationExceptionFilter_1 = require("../../filters/ValidationExceptionFilter");
|
|
11
|
+
const UserExceptionFilter_1 = require("../../filters/UserExceptionFilter");
|
|
12
|
+
const BaseApplication_1 = require("../BaseApplication");
|
|
13
|
+
const ModuleHelper_1 = require("../../helpers/ModuleHelper");
|
|
14
|
+
const AppModule_1 = require("../AppModule");
|
|
15
|
+
class RestApplication extends BaseApplication_1.BaseApplication {
|
|
16
|
+
constructor(moduleClass = AppModule_1.AppModule) {
|
|
17
|
+
super();
|
|
18
|
+
this._moduleClass = moduleClass;
|
|
19
|
+
}
|
|
20
|
+
initConfig() {
|
|
21
|
+
const custom = ModuleHelper_1.ModuleHelper.getConfig(this._moduleClass);
|
|
22
|
+
this._config = Object.assign(Object.assign({}, custom), { cors: Object.assign({ allowHeaders: [
|
|
23
|
+
'Origin',
|
|
24
|
+
'X-Requested-With',
|
|
25
|
+
'Content-Type',
|
|
26
|
+
'Accept',
|
|
27
|
+
'Authorization',
|
|
28
|
+
'Admin-Authorization',
|
|
29
|
+
'X-CSRF-Token',
|
|
30
|
+
'If-None-Match',
|
|
31
|
+
'If-Modified-Since',
|
|
32
|
+
'Cache-Control',
|
|
33
|
+
'X-Requested-With',
|
|
34
|
+
'Content-Disposition',
|
|
35
|
+
'Content-Range',
|
|
36
|
+
], allowMethods: [
|
|
37
|
+
'POST',
|
|
38
|
+
'PUT',
|
|
39
|
+
'GET',
|
|
40
|
+
'OPTIONS',
|
|
41
|
+
'DELETE',
|
|
42
|
+
] }, custom === null || custom === void 0 ? void 0 : custom.cors) });
|
|
43
|
+
}
|
|
44
|
+
initSwagger() {
|
|
45
|
+
const swaggerConfig = new swagger_1.DocumentBuilder()
|
|
46
|
+
.setTitle(this._config.title || 'Application')
|
|
47
|
+
.setDescription('Документация REST API')
|
|
48
|
+
.setVersion(this._config.version || '1.0')
|
|
49
|
+
.build();
|
|
50
|
+
const document = swagger_1.SwaggerModule.createDocument(this._app, swaggerConfig);
|
|
51
|
+
swagger_1.SwaggerModule.setup('/api/docs', this._app, document);
|
|
52
|
+
this._app.setGlobalPrefix('/api/v1');
|
|
53
|
+
this._app.enableVersioning({
|
|
54
|
+
type: common_1.VersioningType.URI,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
initCors() {
|
|
58
|
+
const origin = [];
|
|
59
|
+
(this._config.cors.allowDomains || []).forEach(domain => {
|
|
60
|
+
if (domain.indexOf('://') !== -1) {
|
|
61
|
+
origin.push(domain);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
origin.push('https://' + domain);
|
|
65
|
+
origin.push('http://' + domain);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
this._app.enableCors({
|
|
69
|
+
credentials: true,
|
|
70
|
+
origin,
|
|
71
|
+
methods: this._config.cors.allowMethods,
|
|
72
|
+
allowedHeaders: this._config.cors.allowHeaders,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
initPipes() {
|
|
76
|
+
this._app.useGlobalPipes(new CreateDtoPipe_1.CreateDtoPipe());
|
|
77
|
+
}
|
|
78
|
+
initFilters() {
|
|
79
|
+
this._app.useGlobalFilters(new ValidationExceptionFilter_1.ValidationExceptionFilter());
|
|
80
|
+
this._app.useGlobalFilters(new UserExceptionFilter_1.UserExceptionFilter());
|
|
81
|
+
}
|
|
82
|
+
initSentry() {
|
|
83
|
+
if (process.env.APP_SENTRY_DSN) {
|
|
84
|
+
this._app.useGlobalFilters(new SentryExceptionFilter_1.SentryExceptionFilter());
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
initInterceptors() {
|
|
88
|
+
this._app.useGlobalInterceptors(new SchemaSerializer_1.SchemaSerializer(this._app.get(core_1.Reflector)));
|
|
89
|
+
}
|
|
90
|
+
async init() {
|
|
91
|
+
await super.init();
|
|
92
|
+
this._app = await core_1.NestFactory.create(this._moduleClass);
|
|
93
|
+
this.initSwagger();
|
|
94
|
+
this.initCors();
|
|
95
|
+
this.initPipes();
|
|
96
|
+
this.initFilters();
|
|
97
|
+
this.initSentry();
|
|
98
|
+
this.initInterceptors();
|
|
99
|
+
}
|
|
100
|
+
async start() {
|
|
101
|
+
await this.init();
|
|
102
|
+
const port = parseInt(process.env.PORT, 10);
|
|
103
|
+
await this._app.listen(port, () => console.log(`Server started http://localhost:${port}`));
|
|
104
|
+
}
|
|
105
|
+
getApp() {
|
|
106
|
+
return this._app;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.RestApplication = RestApplication;
|
|
110
|
+
//# sourceMappingURL=RestApplication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RestApplication.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/rest/RestApplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemaSerializer = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const DataMapper_1 = require("../../../usecases/helpers/DataMapper");
|
|
6
|
+
class SchemaSerializer extends common_1.ClassSerializerInterceptor {
|
|
7
|
+
transformToPlain(data, options) {
|
|
8
|
+
return DataMapper_1.DataMapper.create(Object, data);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.SchemaSerializer = SchemaSerializer;
|
|
12
|
+
//# sourceMappingURL=SchemaSerializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaSerializer.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/rest/SchemaSerializer.ts"],"names":[],"mappings":";;;AAAA,2CAA8E;AAC9E,qEAAgE;AAEhE,MAAa,gBAAiB,SAAQ,mCAA0B;IAC5D,gBAAgB,CAAC,IAAS,EAAE,OAAY;QACpC,OAAO,uBAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;CACJ;AAJD,4CAIC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SentryExceptionFilter = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const Sentry = require("@sentry/node");
|
|
12
|
+
const uuid_1 = require("uuid");
|
|
13
|
+
let SentryExceptionFilter = class SentryExceptionFilter {
|
|
14
|
+
catch(exception, host) {
|
|
15
|
+
var _a;
|
|
16
|
+
const ctx = host.switchToHttp();
|
|
17
|
+
const response = ctx.getResponse();
|
|
18
|
+
if (exception instanceof common_1.HttpException) {
|
|
19
|
+
const exceptionResponse = exception.getResponse();
|
|
20
|
+
let payload = {
|
|
21
|
+
statusCode: exception.getStatus(),
|
|
22
|
+
message: exception.message,
|
|
23
|
+
};
|
|
24
|
+
if (typeof exceptionResponse === 'object') {
|
|
25
|
+
payload = Object.assign(Object.assign({}, payload), exceptionResponse);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
payload.response = exceptionResponse;
|
|
29
|
+
}
|
|
30
|
+
response
|
|
31
|
+
.status(exception.getStatus())
|
|
32
|
+
.json(payload);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const request = ctx.getRequest();
|
|
36
|
+
const errorUid = (0, uuid_1.v4)();
|
|
37
|
+
const context = {
|
|
38
|
+
tags: {
|
|
39
|
+
errorUid,
|
|
40
|
+
},
|
|
41
|
+
extra: Object.assign({ errorUid, url: request.url }, request.headers),
|
|
42
|
+
user: {
|
|
43
|
+
id: (_a = request === null || request === void 0 ? void 0 : request.user) === null || _a === void 0 ? void 0 : _a.id,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
Sentry.captureException(exception, context);
|
|
47
|
+
exception.message = 'Внутренняя ошибка сервера. ' + exception.message || '';
|
|
48
|
+
if (errorUid) {
|
|
49
|
+
exception.message += ` Ошибка #${errorUid}`;
|
|
50
|
+
}
|
|
51
|
+
const message = exception.message;
|
|
52
|
+
response
|
|
53
|
+
.status(common_1.HttpStatus.INTERNAL_SERVER_ERROR)
|
|
54
|
+
.json({
|
|
55
|
+
statusCode: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
|
|
56
|
+
message,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
SentryExceptionFilter = __decorate([
|
|
61
|
+
(0, common_1.Catch)(Error)
|
|
62
|
+
], SentryExceptionFilter);
|
|
63
|
+
exports.SentryExceptionFilter = SentryExceptionFilter;
|
|
64
|
+
//# sourceMappingURL=SentryExceptionFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SentryExceptionFilter.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/rest/SentryExceptionFilter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgG;AAEhG,uCAAuC;AACvC,+BAAoC;AAI7B,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAC9B,KAAK,CAAC,SAAgB,EAAE,IAAmB;;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAE7C,IAAI,SAAS,YAAY,sBAAa,EAAE;YACpC,MAAM,iBAAiB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAClD,IAAI,OAAO,GAAQ;gBACf,UAAU,EAAE,SAAS,CAAC,SAAS,EAAE;gBACjC,OAAO,EAAE,SAAS,CAAC,OAAO;aAC7B,CAAC;YACF,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;gBACvC,OAAO,mCAAO,OAAO,GAAK,iBAAiB,CAAC,CAAC;aAChD;iBAAM;gBACH,OAAO,CAAC,QAAQ,GAAG,iBAAiB,CAAC;aACxC;YACD,QAAQ;iBACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;iBAC7B,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO;SACV;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAA,SAAM,GAAE,CAAC;QAE1B,MAAM,OAAO,GAAmB;YAC5B,IAAI,EAAE;gBACF,QAAQ;aACX;YACD,KAAK,kBACD,QAAQ,EACR,GAAG,EAAE,OAAO,CAAC,GAAG,IACb,OAAO,CAAC,OAAO,CACrB;YACD,IAAI,EAAE;gBACF,EAAE,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,EAAE;aACxB;SACJ,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE5C,SAAS,CAAC,OAAO,GAAG,6BAA6B,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;QAC5E,IAAI,QAAQ,EAAE;YACV,SAAS,CAAC,OAAO,IAAI,YAAY,QAAQ,EAAE,CAAC;SAC/C;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAClC,QAAQ;aACH,MAAM,CAAC,mBAAU,CAAC,qBAAqB,CAAC;aACxC,IAAI,CAAC;YACF,UAAU,EAAE,mBAAU,CAAC,qBAAqB;YAC5C,OAAO;SACV,CAAC,CAAC;IACX,CAAC;CACJ,CAAA;AAtDY,qBAAqB;IADjC,IAAA,cAAK,EAAC,KAAK,CAAC;GACA,qBAAqB,CAsDjC;AAtDY,sDAAqB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IRestAppModuleConfig } from './IRestAppModuleConfig';
|
|
2
|
+
import { ValidationExceptionFilterCustom } from './filters/ValidationExceptionFilterCustom';
|
|
3
|
+
import { RequestExecutionExceptionFilter } from './filters/RequestExecutionExceptionFilter';
|
|
4
|
+
declare const _default: {
|
|
5
|
+
module: (config: IRestAppModuleConfig) => {
|
|
6
|
+
providers: ({
|
|
7
|
+
provide: string;
|
|
8
|
+
useClass: typeof ValidationExceptionFilterCustom;
|
|
9
|
+
} | {
|
|
10
|
+
provide: string;
|
|
11
|
+
useClass: typeof RequestExecutionExceptionFilter;
|
|
12
|
+
})[];
|
|
13
|
+
imports: import("@nestjs/common").DynamicModule[];
|
|
14
|
+
};
|
|
15
|
+
rootTarget: typeof import("../AppModule").AppModule;
|
|
16
|
+
config: () => import("../IAppModuleConfig").IAppModuleConfig;
|
|
17
|
+
};
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@nestjs/core");
|
|
4
|
+
const config_1 = require("../base/config");
|
|
5
|
+
const ValidationExceptionFilterCustom_1 = require("./filters/ValidationExceptionFilterCustom");
|
|
6
|
+
const RequestExecutionExceptionFilter_1 = require("./filters/RequestExecutionExceptionFilter");
|
|
7
|
+
exports.default = Object.assign(Object.assign({}, config_1.default), { module: (config) => (Object.assign(Object.assign({}, config_1.default.module(config)), { providers: [
|
|
8
|
+
{
|
|
9
|
+
provide: core_1.APP_FILTER,
|
|
10
|
+
useClass: ValidationExceptionFilterCustom_1.ValidationExceptionFilterCustom,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
provide: core_1.APP_FILTER,
|
|
14
|
+
useClass: RequestExecutionExceptionFilter_1.RequestExecutionExceptionFilter,
|
|
15
|
+
},
|
|
16
|
+
] })) });
|
|
17
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/rest/config.ts"],"names":[],"mappings":";;AAAA,uCAAwC;AACxC,2CAAwC;AAExC,+FAA0F;AAC1F,+FAA0F;AAE1F,kDACO,gBAAU,KACb,MAAM,EAAE,CAAC,MAA4B,EAAE,EAAE,CAAC,iCACnC,gBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAC5B,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,iBAAU;gBACnB,QAAQ,EAAE,iEAA+B;aAC5C;YACD;gBACI,OAAO,EAAE,iBAAU;gBACnB,QAAQ,EAAE,iEAA+B;aAC5C;SACJ,IACH,IACJ"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RequestExecutionException = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
class RequestExecutionException {
|
|
6
|
+
constructor(message) {
|
|
7
|
+
this.status = common_1.HttpStatus.INTERNAL_SERVER_ERROR;
|
|
8
|
+
this.message = message;
|
|
9
|
+
}
|
|
10
|
+
getStatus() {
|
|
11
|
+
return this.status;
|
|
12
|
+
}
|
|
13
|
+
getMessage() {
|
|
14
|
+
return this.message;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.RequestExecutionException = RequestExecutionException;
|
|
18
|
+
//# sourceMappingURL=RequestExecutionException.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestExecutionException.js","sourceRoot":"","sources":["../../../../../src/infrastructure/applications/rest/exceptions/RequestExecutionException.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAQ1C,MAAa,yBAAyB;IAKlC,YAAY,OAAe;QAFpB,WAAM,GAAG,mBAAU,CAAC,qBAAqB,CAAC;QAG7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAhBD,8DAgBC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ExceptionFilter, ArgumentsHost } from '@nestjs/common';
|
|
2
|
+
import { RequestExecutionException } from '../exceptions/RequestExecutionException';
|
|
3
|
+
export declare class RequestExecutionExceptionFilter implements ExceptionFilter {
|
|
4
|
+
catch(exception: RequestExecutionException, host: ArgumentsHost): void;
|
|
5
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.RequestExecutionExceptionFilter = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const RequestExecutionException_1 = require("../exceptions/RequestExecutionException");
|
|
12
|
+
let RequestExecutionExceptionFilter = class RequestExecutionExceptionFilter {
|
|
13
|
+
catch(exception, host) {
|
|
14
|
+
const ctx = host.switchToHttp();
|
|
15
|
+
const response = ctx.getResponse();
|
|
16
|
+
const status = exception.getStatus();
|
|
17
|
+
const message = exception.getMessage();
|
|
18
|
+
response
|
|
19
|
+
.status(status)
|
|
20
|
+
.json({
|
|
21
|
+
statusCode: status,
|
|
22
|
+
message,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
RequestExecutionExceptionFilter = __decorate([
|
|
27
|
+
(0, common_1.Catch)(RequestExecutionException_1.RequestExecutionException)
|
|
28
|
+
], RequestExecutionExceptionFilter);
|
|
29
|
+
exports.RequestExecutionExceptionFilter = RequestExecutionExceptionFilter;
|
|
30
|
+
//# sourceMappingURL=RequestExecutionExceptionFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestExecutionExceptionFilter.js","sourceRoot":"","sources":["../../../../../src/infrastructure/applications/rest/filters/RequestExecutionExceptionFilter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAqE;AAErE,uFAAkF;AAG3E,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IACxC,KAAK,CAAC,SAAoC,EAAE,IAAmB;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAE7C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;QAEvC,QAAQ;aACH,MAAM,CAAC,MAAM,CAAC;aACd,IAAI,CAAC;YACF,UAAU,EAAE,MAAM;YAClB,OAAO;SACV,CAAC,CAAC;IACX,CAAC;CACJ,CAAA;AAfY,+BAA+B;IAD3C,IAAA,cAAK,EAAC,qDAAyB,CAAC;GACpB,+BAA+B,CAe3C;AAfY,0EAA+B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ExceptionFilter, ArgumentsHost } from '@nestjs/common';
|
|
2
|
+
import { ValidationException } from '../../../../usecases/exceptions';
|
|
3
|
+
type ErrorsCompositeObject = {
|
|
4
|
+
[propertyName: string]: string[] | ErrorsCompositeObject;
|
|
5
|
+
};
|
|
6
|
+
export declare class ValidationExceptionFilterCustom implements ExceptionFilter {
|
|
7
|
+
parseErrors(errors: any, contextLanguage: string): Promise<ErrorsCompositeObject>;
|
|
8
|
+
catch(exception: ValidationException, host: ArgumentsHost): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export {};
|