@steroidsjs/nest 3.2.2 → 3.2.3
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/BaseApplication.d.ts +32 -0
- package/infrastructure/applications/BaseApplication.js +25 -0
- package/infrastructure/applications/BaseApplication.js.map +1 -1
- package/infrastructure/applications/IAppModuleConfig.d.ts +30 -0
- package/infrastructure/applications/base/config.js +2 -0
- package/infrastructure/applications/base/config.js.map +1 -1
- package/infrastructure/applications/console/ConsoleApplication.d.ts +23 -0
- package/infrastructure/applications/console/ConsoleApplication.js +15 -0
- package/infrastructure/applications/console/ConsoleApplication.js.map +1 -1
- package/infrastructure/applications/rest/IRestAppModuleConfig.d.ts +16 -0
- package/infrastructure/applications/rest/RestApplication.d.ts +67 -0
- package/infrastructure/applications/rest/RestApplication.js +54 -0
- package/infrastructure/applications/rest/RestApplication.js.map +1 -1
- package/infrastructure/decorators/fields/BaseField.d.ts +49 -0
- package/infrastructure/decorators/fields/BaseField.js.map +1 -1
- package/infrastructure/repositories/CrudRepository.d.ts +11 -0
- package/infrastructure/repositories/CrudRepository.js +6 -0
- package/infrastructure/repositories/CrudRepository.js.map +1 -1
- package/package.json +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/usecases/helpers/DataMapper.js +13 -0
- package/usecases/helpers/DataMapper.js.map +1 -1
- package/usecases/interfaces/IValidator.d.ts +15 -0
- package/usecases/services/CrudService.d.ts +6 -0
- package/usecases/services/CrudService.js +6 -0
- package/usecases/services/CrudService.js.map +1 -1
- package/usecases/services/ReadService.d.ts +22 -0
- package/usecases/services/ReadService.js +22 -0
- package/usecases/services/ReadService.js.map +1 -1
|
@@ -1,8 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract class for creating application configuration classes.
|
|
3
|
+
*/
|
|
1
4
|
export declare abstract class BaseApplication {
|
|
5
|
+
/**
|
|
6
|
+
* The object of the project configuration.
|
|
7
|
+
* @protected
|
|
8
|
+
*/
|
|
2
9
|
protected _config: any;
|
|
10
|
+
/**
|
|
11
|
+
* The project initialization method, which causes
|
|
12
|
+
* three other methods (`initEnv`, `initConfig`, `initModules`).
|
|
13
|
+
* @protected
|
|
14
|
+
*/
|
|
3
15
|
protected init(): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Method for initializing environment variables.
|
|
18
|
+
* It uses `dotenv` library to load variables from `.env` file.
|
|
19
|
+
* If `APP_ENVIRONMENT` variable is not present in the environment file,
|
|
20
|
+
* the error `APP_ENVIRONMENT is not found in env file` is thrown.
|
|
21
|
+
* @protected
|
|
22
|
+
*/
|
|
4
23
|
protected initEnv(): void;
|
|
24
|
+
/**
|
|
25
|
+
* An empty method that can be overridden in class inheritors
|
|
26
|
+
* to initialize the application configuration.
|
|
27
|
+
* @protected
|
|
28
|
+
*/
|
|
5
29
|
protected initConfig(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Method for initializing application modules.
|
|
32
|
+
* It uses the `ModuleHelper` class.
|
|
33
|
+
* @protected
|
|
34
|
+
*/
|
|
6
35
|
protected initModules(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Abstract method for starting the application.
|
|
38
|
+
*/
|
|
7
39
|
abstract start(): any;
|
|
8
40
|
}
|
|
@@ -3,20 +3,45 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BaseApplication = void 0;
|
|
4
4
|
const dotenv = require("dotenv");
|
|
5
5
|
const ModuleHelper_1 = require("../helpers/ModuleHelper");
|
|
6
|
+
/**
|
|
7
|
+
* Abstract class for creating application configuration classes.
|
|
8
|
+
*/
|
|
6
9
|
class BaseApplication {
|
|
10
|
+
/**
|
|
11
|
+
* The project initialization method, which causes
|
|
12
|
+
* three other methods (`initEnv`, `initConfig`, `initModules`).
|
|
13
|
+
* @protected
|
|
14
|
+
*/
|
|
7
15
|
async init() {
|
|
8
16
|
this.initEnv();
|
|
9
17
|
this.initConfig();
|
|
10
18
|
this.initModules();
|
|
11
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Method for initializing environment variables.
|
|
22
|
+
* It uses `dotenv` library to load variables from `.env` file.
|
|
23
|
+
* If `APP_ENVIRONMENT` variable is not present in the environment file,
|
|
24
|
+
* the error `APP_ENVIRONMENT is not found in env file` is thrown.
|
|
25
|
+
* @protected
|
|
26
|
+
*/
|
|
12
27
|
initEnv() {
|
|
13
28
|
dotenv.config();
|
|
14
29
|
if (!process.env.APP_ENVIRONMENT) {
|
|
15
30
|
throw new Error('APP_ENVIRONMENT is not found in env file');
|
|
16
31
|
}
|
|
17
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* An empty method that can be overridden in class inheritors
|
|
35
|
+
* to initialize the application configuration.
|
|
36
|
+
* @protected
|
|
37
|
+
*/
|
|
18
38
|
initConfig() {
|
|
19
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Method for initializing application modules.
|
|
42
|
+
* It uses the `ModuleHelper` class.
|
|
43
|
+
* @protected
|
|
44
|
+
*/
|
|
20
45
|
initModules() {
|
|
21
46
|
ModuleHelper_1.ModuleHelper.runInitializers();
|
|
22
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../../../src/infrastructure/applications/BaseApplication.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,0DAAqD;AAErD,MAAsB,eAAe;
|
|
1
|
+
{"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../../../src/infrastructure/applications/BaseApplication.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,0DAAqD;AAErD;;GAEG;AACH,MAAsB,eAAe;IAOjC;;;;OAIG;IACO,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACO,OAAO;QACb,MAAM,CAAC,MAAM,EAAE,CAAC;QAEhB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC/D;IACL,CAAC;IAED;;;;OAIG;IACO,UAAU;IAEpB,CAAC;IAED;;;;OAIG;IACO,WAAW;QACjB,2BAAY,CAAC,eAAe,EAAE,CAAC;IACnC,CAAC;CAMJ;AAvDD,0CAuDC"}
|
|
@@ -1,17 +1,47 @@
|
|
|
1
1
|
export interface IAppModuleConfig {
|
|
2
|
+
/**
|
|
3
|
+
* Application name (default is `app`)
|
|
4
|
+
*/
|
|
2
5
|
name: string;
|
|
6
|
+
/**
|
|
7
|
+
* Title for Swagger (default is `Application`)
|
|
8
|
+
*/
|
|
3
9
|
title: string;
|
|
10
|
+
/**
|
|
11
|
+
* Application version (default `1.0`)
|
|
12
|
+
*/
|
|
4
13
|
version: string;
|
|
5
14
|
database?: {
|
|
15
|
+
/**
|
|
16
|
+
* Database host (value from `process.env.APP_DATABASE_HOST`)
|
|
17
|
+
*/
|
|
6
18
|
host: string;
|
|
19
|
+
/**
|
|
20
|
+
* Database port (value from `process.env.APP_DATABASE_PORT`)
|
|
21
|
+
*/
|
|
7
22
|
port: number;
|
|
23
|
+
/**
|
|
24
|
+
* Database name (value from `process.env.APP_DATABASE_NAME`)
|
|
25
|
+
*/
|
|
8
26
|
database: string;
|
|
27
|
+
/**
|
|
28
|
+
* Username in the DBMS (value from `process.env.APP_DATABASE_USERNAME`)
|
|
29
|
+
*/
|
|
9
30
|
username: string;
|
|
31
|
+
/**
|
|
32
|
+
* User password in DBMS (value from `process.env.APP_DATABASE_PASSWORD`)
|
|
33
|
+
*/
|
|
10
34
|
password: string;
|
|
11
35
|
[key: string]: any;
|
|
12
36
|
};
|
|
13
37
|
sentry?: {
|
|
38
|
+
/**
|
|
39
|
+
* DSN Sentry
|
|
40
|
+
*/
|
|
14
41
|
dsn: string;
|
|
42
|
+
/**
|
|
43
|
+
* Application Environment for Sentry
|
|
44
|
+
*/
|
|
15
45
|
environment: string;
|
|
16
46
|
};
|
|
17
47
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const nest_typeorm_1 = require("@steroidsjs/nest-typeorm");
|
|
4
4
|
const nestjs_sentry_1 = require("@ntegral/nestjs-sentry");
|
|
5
|
+
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
5
6
|
const ModuleHelper_1 = require("../../helpers/ModuleHelper");
|
|
6
7
|
const AppModule_1 = require("../AppModule");
|
|
7
8
|
const DatabaseNamingStrategy_1 = require("../../base/DatabaseNamingStrategy");
|
|
@@ -31,6 +32,7 @@ exports.default = {
|
|
|
31
32
|
dsn: config.sentry.dsn,
|
|
32
33
|
environment: config.sentry.environment || process.env.APP_ENVIRONMENT,
|
|
33
34
|
}),
|
|
35
|
+
event_emitter_1.EventEmitterModule.forRoot(),
|
|
34
36
|
].filter(Boolean),
|
|
35
37
|
}),
|
|
36
38
|
};
|
|
@@ -1 +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,CAAA,eAAe,CAAC;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;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/base/config.ts"],"names":[],"mappings":";;AAAA,2DAA6E;AAE7E,0DAAoD;AACpD,yDAAyD;AACzD,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,CAAA,eAAe,CAAC;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;YACF,kCAAkB,CAAC,OAAO,EAAE;SAC/B,CAAC,MAAM,CAAC,OAAO,CAAC;KACpB,CAAC;CACL,CAAC"}
|
|
@@ -1,9 +1,32 @@
|
|
|
1
1
|
import { BaseApplication } from '../BaseApplication';
|
|
2
2
|
import { AppModule } from '../AppModule';
|
|
3
|
+
/**
|
|
4
|
+
* CLI application configuration class.
|
|
5
|
+
* Mainly used for working with migrations.
|
|
6
|
+
*/
|
|
3
7
|
export declare class ConsoleApplication extends BaseApplication {
|
|
8
|
+
/**
|
|
9
|
+
* An instance of an application built with NestJS.
|
|
10
|
+
* @protected
|
|
11
|
+
*/
|
|
4
12
|
protected _app: any;
|
|
13
|
+
/**
|
|
14
|
+
* The class of the application module (default is `AppModule`).
|
|
15
|
+
* @protected
|
|
16
|
+
*/
|
|
5
17
|
protected _moduleClass: any;
|
|
6
18
|
constructor(moduleClass?: typeof AppModule);
|
|
19
|
+
/**
|
|
20
|
+
* Initialize the project environment.
|
|
21
|
+
* Sets the environment variable `APP_IS_CLI` to `1`.
|
|
22
|
+
* Calls the base class's environment initialization method.
|
|
23
|
+
* @protected
|
|
24
|
+
*/
|
|
7
25
|
protected initEnv(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Launches an application.
|
|
28
|
+
* Executes a command passed from the terminal,
|
|
29
|
+
* while creating an application context only for the duration of the command execution.
|
|
30
|
+
*/
|
|
8
31
|
start(): Promise<void>;
|
|
9
32
|
}
|
|
@@ -5,15 +5,30 @@ const core_1 = require("@nestjs/core");
|
|
|
5
5
|
const nestjs_command_1 = require("nestjs-command");
|
|
6
6
|
const BaseApplication_1 = require("../BaseApplication");
|
|
7
7
|
const AppModule_1 = require("../AppModule");
|
|
8
|
+
/**
|
|
9
|
+
* CLI application configuration class.
|
|
10
|
+
* Mainly used for working with migrations.
|
|
11
|
+
*/
|
|
8
12
|
class ConsoleApplication extends BaseApplication_1.BaseApplication {
|
|
9
13
|
constructor(moduleClass = AppModule_1.AppModule) {
|
|
10
14
|
super();
|
|
11
15
|
this._moduleClass = moduleClass;
|
|
12
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Initialize the project environment.
|
|
19
|
+
* Sets the environment variable `APP_IS_CLI` to `1`.
|
|
20
|
+
* Calls the base class's environment initialization method.
|
|
21
|
+
* @protected
|
|
22
|
+
*/
|
|
13
23
|
initEnv() {
|
|
14
24
|
process.env.APP_IS_CLI = '1';
|
|
15
25
|
super.initEnv();
|
|
16
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Launches an application.
|
|
29
|
+
* Executes a command passed from the terminal,
|
|
30
|
+
* while creating an application context only for the duration of the command execution.
|
|
31
|
+
*/
|
|
17
32
|
async start() {
|
|
18
33
|
await this.init();
|
|
19
34
|
this._app = await core_1.NestFactory.createApplicationContext(this._moduleClass, {
|
|
@@ -1 +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;
|
|
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;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,iCAAe;IAanD,YAAY,WAAW,GAAG,qBAAS;QAC/B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACO,OAAO;QACb,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QAE7B,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACI,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,EAAE,cAAc;SAC5C,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,CAAC,iCAAiC;SAC1D;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACJ;AAnDD,gDAmDC"}
|
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
import { IAppModuleConfig } from '../IAppModuleConfig';
|
|
2
2
|
export interface IRestAppModuleConfig extends IAppModuleConfig {
|
|
3
|
+
/**
|
|
4
|
+
* Maximum request body size
|
|
5
|
+
*/
|
|
3
6
|
requestSizeLimit?: string;
|
|
4
7
|
cors?: {
|
|
8
|
+
/**
|
|
9
|
+
* List of domains that are allowed to send requests to the server
|
|
10
|
+
*/
|
|
5
11
|
allowDomains?: string[];
|
|
12
|
+
/**
|
|
13
|
+
* List of HTTP methods that are allowed for requests
|
|
14
|
+
*/
|
|
6
15
|
allowMethods?: string[];
|
|
16
|
+
/**
|
|
17
|
+
* List of HTTP request headers that are allowed when sent to the server
|
|
18
|
+
*/
|
|
7
19
|
allowHeaders?: string[];
|
|
8
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* Flag indicating whether safe application termination is enabled
|
|
23
|
+
* Enables .enableShutdownHooks() for NestJS app
|
|
24
|
+
*/
|
|
9
25
|
gracefulEnabled?: boolean;
|
|
10
26
|
}
|
|
@@ -1,21 +1,88 @@
|
|
|
1
1
|
import { IRestAppModuleConfig } from './IRestAppModuleConfig';
|
|
2
2
|
import { BaseApplication } from '../BaseApplication';
|
|
3
3
|
import { AppModule } from '../AppModule';
|
|
4
|
+
/**
|
|
5
|
+
* REST API application configuration class.
|
|
6
|
+
*/
|
|
4
7
|
export declare class RestApplication extends BaseApplication {
|
|
8
|
+
/**
|
|
9
|
+
* An instance of an application built with NestJS.
|
|
10
|
+
* @protected
|
|
11
|
+
*/
|
|
5
12
|
protected _app: any;
|
|
13
|
+
/**
|
|
14
|
+
* The class of the application module (default is `AppModule`).
|
|
15
|
+
* @protected
|
|
16
|
+
*/
|
|
6
17
|
protected _moduleClass: any;
|
|
18
|
+
/**
|
|
19
|
+
* Application configuration (inherits from `BaseApplication`),
|
|
20
|
+
* which is defined by the `IRestAppModuleConfig` interface.
|
|
21
|
+
* @protected
|
|
22
|
+
*/
|
|
7
23
|
protected _config: IRestAppModuleConfig;
|
|
8
24
|
constructor(moduleClass?: typeof AppModule);
|
|
25
|
+
/**
|
|
26
|
+
* Override `initConfig` method from base class to initialize application configuration.
|
|
27
|
+
* Uses `ModuleHelper.getConfig` to get user configuration and merges it with default values.
|
|
28
|
+
* @protected
|
|
29
|
+
*/
|
|
9
30
|
protected initConfig(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Initialize Swagger to generate API documentation.
|
|
33
|
+
* Documentation will be available at the `/api/docs` endpoint.
|
|
34
|
+
* @protected
|
|
35
|
+
*/
|
|
10
36
|
protected initSwagger(): void;
|
|
37
|
+
/**
|
|
38
|
+
* CORS (Cross-Origin Resource Sharing) setup. Based on the configuration,
|
|
39
|
+
* adds allowed domains and request methods.
|
|
40
|
+
* @protected
|
|
41
|
+
*/
|
|
11
42
|
protected initCors(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Initialize global pipes used to validate request data (default is `CreateDtoPipe`).
|
|
45
|
+
* @protected
|
|
46
|
+
*/
|
|
12
47
|
protected initPipes(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Initialize global exception filters
|
|
50
|
+
* (by default, `ValidationExceptionFilter` and `UserExceptionFilter` are used).
|
|
51
|
+
* @protected
|
|
52
|
+
*/
|
|
13
53
|
protected initFilters(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Initializes Sentry for error tracking and logging.
|
|
56
|
+
* If the environment variable `APP_SENTRY_DSN` is set, the filter `SentryExceptionFilter` is added.
|
|
57
|
+
* @protected
|
|
58
|
+
*/
|
|
14
59
|
protected initSentry(): void;
|
|
60
|
+
/**
|
|
61
|
+
* Initialization of global interceptors (default is `SchemaSerializer`).
|
|
62
|
+
* @protected
|
|
63
|
+
*/
|
|
15
64
|
protected initInterceptors(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Configuring request body parsers with request size limitation.
|
|
67
|
+
* @protected
|
|
68
|
+
*/
|
|
16
69
|
protected initSettings(): void;
|
|
70
|
+
/**
|
|
71
|
+
* Enable graceful application shutdown if the `gracefulEnabled` property is enabled in the configuration.
|
|
72
|
+
* @protected
|
|
73
|
+
*/
|
|
17
74
|
protected initGraceful(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Initializes the project.
|
|
77
|
+
* Applies all `init*` methods, and also creates an application instance using `NestFactory.create`.
|
|
78
|
+
*/
|
|
18
79
|
init(): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Starts the application. Calls the `init` method and then starts the server on the specified port.
|
|
82
|
+
*/
|
|
19
83
|
start(): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Getter for `_app`
|
|
86
|
+
*/
|
|
20
87
|
getApp(): any;
|
|
21
88
|
}
|
|
@@ -13,11 +13,19 @@ const UserExceptionFilter_1 = require("../../filters/UserExceptionFilter");
|
|
|
13
13
|
const BaseApplication_1 = require("../BaseApplication");
|
|
14
14
|
const ModuleHelper_1 = require("../../helpers/ModuleHelper");
|
|
15
15
|
const AppModule_1 = require("../AppModule");
|
|
16
|
+
/**
|
|
17
|
+
* REST API application configuration class.
|
|
18
|
+
*/
|
|
16
19
|
class RestApplication extends BaseApplication_1.BaseApplication {
|
|
17
20
|
constructor(moduleClass = AppModule_1.AppModule) {
|
|
18
21
|
super();
|
|
19
22
|
this._moduleClass = moduleClass;
|
|
20
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Override `initConfig` method from base class to initialize application configuration.
|
|
26
|
+
* Uses `ModuleHelper.getConfig` to get user configuration and merges it with default values.
|
|
27
|
+
* @protected
|
|
28
|
+
*/
|
|
21
29
|
initConfig() {
|
|
22
30
|
const custom = ModuleHelper_1.ModuleHelper.getConfig(this._moduleClass);
|
|
23
31
|
this._config = Object.assign(Object.assign({ requestSizeLimit: '32mb' }, custom), { cors: Object.assign({ allowHeaders: [
|
|
@@ -43,6 +51,11 @@ class RestApplication extends BaseApplication_1.BaseApplication {
|
|
|
43
51
|
'DELETE',
|
|
44
52
|
] }, custom === null || custom === void 0 ? void 0 : custom.cors) });
|
|
45
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Initialize Swagger to generate API documentation.
|
|
56
|
+
* Documentation will be available at the `/api/docs` endpoint.
|
|
57
|
+
* @protected
|
|
58
|
+
*/
|
|
46
59
|
initSwagger() {
|
|
47
60
|
// Versioning
|
|
48
61
|
this._app.setGlobalPrefix('/api/v1');
|
|
@@ -59,6 +72,11 @@ class RestApplication extends BaseApplication_1.BaseApplication {
|
|
|
59
72
|
const document = swagger_1.SwaggerModule.createDocument(this._app, swaggerConfig);
|
|
60
73
|
swagger_1.SwaggerModule.setup('/api/docs', this._app, document);
|
|
61
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* CORS (Cross-Origin Resource Sharing) setup. Based on the configuration,
|
|
77
|
+
* adds allowed domains and request methods.
|
|
78
|
+
* @protected
|
|
79
|
+
*/
|
|
62
80
|
initCors() {
|
|
63
81
|
// Cors
|
|
64
82
|
const origin = [];
|
|
@@ -78,32 +96,62 @@ class RestApplication extends BaseApplication_1.BaseApplication {
|
|
|
78
96
|
allowedHeaders: this._config.cors.allowHeaders,
|
|
79
97
|
});
|
|
80
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Initialize global pipes used to validate request data (default is `CreateDtoPipe`).
|
|
101
|
+
* @protected
|
|
102
|
+
*/
|
|
81
103
|
initPipes() {
|
|
82
104
|
// Validation
|
|
83
105
|
this._app.useGlobalPipes(new CreateDtoPipe_1.CreateDtoPipe());
|
|
84
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Initialize global exception filters
|
|
109
|
+
* (by default, `ValidationExceptionFilter` and `UserExceptionFilter` are used).
|
|
110
|
+
* @protected
|
|
111
|
+
*/
|
|
85
112
|
initFilters() {
|
|
86
113
|
// Validation
|
|
87
114
|
this._app.useGlobalFilters(new ValidationExceptionFilter_1.ValidationExceptionFilter());
|
|
88
115
|
this._app.useGlobalFilters(new UserExceptionFilter_1.UserExceptionFilter());
|
|
89
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Initializes Sentry for error tracking and logging.
|
|
119
|
+
* If the environment variable `APP_SENTRY_DSN` is set, the filter `SentryExceptionFilter` is added.
|
|
120
|
+
* @protected
|
|
121
|
+
*/
|
|
90
122
|
initSentry() {
|
|
91
123
|
if (process.env.APP_SENTRY_DSN) {
|
|
92
124
|
this._app.useGlobalFilters(new SentryExceptionFilter_1.SentryExceptionFilter());
|
|
93
125
|
}
|
|
94
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Initialization of global interceptors (default is `SchemaSerializer`).
|
|
129
|
+
* @protected
|
|
130
|
+
*/
|
|
95
131
|
initInterceptors() {
|
|
96
132
|
this._app.useGlobalInterceptors(new SchemaSerializer_1.SchemaSerializer(this._app.get(core_1.Reflector)));
|
|
97
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Configuring request body parsers with request size limitation.
|
|
136
|
+
* @protected
|
|
137
|
+
*/
|
|
98
138
|
initSettings() {
|
|
99
139
|
this._app.use((0, body_parser_1.json)({ limit: this._config.requestSizeLimit }));
|
|
100
140
|
this._app.use((0, body_parser_1.urlencoded)({ extended: true, limit: this._config.requestSizeLimit }));
|
|
101
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Enable graceful application shutdown if the `gracefulEnabled` property is enabled in the configuration.
|
|
144
|
+
* @protected
|
|
145
|
+
*/
|
|
102
146
|
initGraceful() {
|
|
103
147
|
if (this._config.gracefulEnabled) {
|
|
104
148
|
this._app.enableShutdownHooks();
|
|
105
149
|
}
|
|
106
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Initializes the project.
|
|
153
|
+
* Applies all `init*` methods, and also creates an application instance using `NestFactory.create`.
|
|
154
|
+
*/
|
|
107
155
|
async init() {
|
|
108
156
|
await super.init();
|
|
109
157
|
this._app = await core_1.NestFactory.create(this._moduleClass, {
|
|
@@ -118,12 +166,18 @@ class RestApplication extends BaseApplication_1.BaseApplication {
|
|
|
118
166
|
this.initSettings();
|
|
119
167
|
this.initGraceful();
|
|
120
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Starts the application. Calls the `init` method and then starts the server on the specified port.
|
|
171
|
+
*/
|
|
121
172
|
async start() {
|
|
122
173
|
await this.init();
|
|
123
174
|
// Start application
|
|
124
175
|
const port = parseInt(process.env.PORT, 10);
|
|
125
176
|
await this._app.listen(port, () => console.log(`Server started http://localhost:${port}`));
|
|
126
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Getter for `_app`
|
|
180
|
+
*/
|
|
127
181
|
getApp() {
|
|
128
182
|
return this._app;
|
|
129
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestApplication.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/rest/RestApplication.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AACpD,6CAA6C;AAC7C,6CAA+D;AAC/D,2CAA8C;AAC9C,mEAA8D;AAC9D,yDAAoD;AAEpD,6DAAwD;AACxD,uFAAkF;AAClF,2EAAsE;AACtE,wDAAmD;AACnD,6DAAwD;AACxD,4CAAuC;AAEvC,MAAa,eAAgB,SAAQ,iCAAe;
|
|
1
|
+
{"version":3,"file":"RestApplication.js","sourceRoot":"","sources":["../../../../src/infrastructure/applications/rest/RestApplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,21 +7,70 @@ export declare const STEROIDS_META_KEYS = "steroids_meta_keys";
|
|
|
7
7
|
export type AppColumnType = 'boolean' | 'createTime' | 'date' | 'dateTime' | 'decimal' | 'email' | 'enum' | 'file' | 'html' | 'integer' | 'password' | 'phone' | 'primaryKey' | 'relation' | 'relationId' | 'string' | 'text' | 'time' | 'updateTime' | string;
|
|
8
8
|
export type JsType = 'boolean' | 'string' | 'number' | string;
|
|
9
9
|
export interface IBaseFieldOptions {
|
|
10
|
+
/**
|
|
11
|
+
* App type
|
|
12
|
+
*/
|
|
10
13
|
appType?: AppColumnType;
|
|
14
|
+
/**
|
|
15
|
+
* JavaScript type
|
|
16
|
+
*/
|
|
11
17
|
jsType?: ColumnType;
|
|
18
|
+
/**
|
|
19
|
+
* Database type
|
|
20
|
+
*/
|
|
12
21
|
dbType?: ColumnType;
|
|
22
|
+
/**
|
|
23
|
+
* Field name, displayed in swagger documentation
|
|
24
|
+
*/
|
|
13
25
|
label?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Hint
|
|
28
|
+
*/
|
|
14
29
|
hint?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Example of a field value, displayed in the swagger documentation.
|
|
32
|
+
*/
|
|
15
33
|
example?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Default value of the field.
|
|
36
|
+
* Passes to TypeORM to set the default value in the database.
|
|
37
|
+
*/
|
|
16
38
|
defaultValue?: any;
|
|
39
|
+
/**
|
|
40
|
+
* Flag indicating whether the field is required.
|
|
41
|
+
*/
|
|
17
42
|
required?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Flag indicating whether the field value can be null.
|
|
45
|
+
*/
|
|
18
46
|
nullable?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Flag indicating whether the field is an array
|
|
49
|
+
*/
|
|
19
50
|
isArray?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Minimum value
|
|
53
|
+
*/
|
|
20
54
|
min?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Maximum value
|
|
57
|
+
*/
|
|
21
58
|
max?: number;
|
|
59
|
+
/**
|
|
60
|
+
* Enum titles to upload data on frontend
|
|
61
|
+
*/
|
|
22
62
|
items?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Plain name
|
|
65
|
+
*/
|
|
23
66
|
plainName?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Callback that transforms the field value when an object is created using DataMapper
|
|
69
|
+
*/
|
|
24
70
|
transform?: ITransformCallback;
|
|
71
|
+
/**
|
|
72
|
+
* If this flag is set, the field will not be present in the database
|
|
73
|
+
*/
|
|
25
74
|
noColumn?: boolean;
|
|
26
75
|
}
|
|
27
76
|
export interface IRelationData {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/BaseField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,6CAA4C;AAE5C,qDAAqD;AAErD,4CAA2D;AAE9C,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAC5C,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAChE,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/BaseField.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,8 +17,13 @@ export declare class CrudRepository<TModel> implements ICrudRepository<TModel>,
|
|
|
17
17
|
primaryKey: string;
|
|
18
18
|
/**
|
|
19
19
|
* TypeORM repository instance
|
|
20
|
+
* @protected
|
|
20
21
|
*/
|
|
21
22
|
protected dbRepository: Repository<any>;
|
|
23
|
+
/**
|
|
24
|
+
* Model class for CRUD operations (same as `TModel`).
|
|
25
|
+
* @protected
|
|
26
|
+
*/
|
|
22
27
|
protected modelClass: any;
|
|
23
28
|
onModuleInit(): void;
|
|
24
29
|
onModuleDestroy(): void;
|
|
@@ -46,6 +51,12 @@ export declare class CrudRepository<TModel> implements ICrudRepository<TModel>,
|
|
|
46
51
|
* @param eagerLoading
|
|
47
52
|
*/
|
|
48
53
|
findMany(conditionOrQuery: ICondition | SearchQuery<TModel>, eagerLoading?: boolean): Promise<TModel[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Create a SearchQuery object in the repository context,
|
|
56
|
+
* which allows calling the `one`, `many` methods of SearchQuery
|
|
57
|
+
* (binding to the `findOne` and `findMany` methods).
|
|
58
|
+
* @param config
|
|
59
|
+
*/
|
|
49
60
|
createQuery(config?: ISearchQueryConfig<TModel>): SearchQuery<TModel>;
|
|
50
61
|
/**
|
|
51
62
|
* Create db query builder for findOne() and findMany() methods
|
|
@@ -71,6 +71,12 @@ class CrudRepository {
|
|
|
71
71
|
rows = await QueryAdapterTypeORM_1.QueryAdapterTypeORM.loadRelationsWithoutJoin(this.modelClass, this.dbRepository, rows, searchQuery.getWithNoJoin());
|
|
72
72
|
return rows.map(row => this.entityToModel(row));
|
|
73
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Create a SearchQuery object in the repository context,
|
|
76
|
+
* which allows calling the `one`, `many` methods of SearchQuery
|
|
77
|
+
* (binding to the `findOne` and `findMany` methods).
|
|
78
|
+
* @param config
|
|
79
|
+
*/
|
|
74
80
|
createQuery(config) {
|
|
75
81
|
return new SearchQuery_1.default(Object.assign({ onGetMany: this.findMany.bind(this), onGetOne: this.findOne.bind(this) }, (config || {})));
|
|
76
82
|
}
|