@steroidsjs/nest 3.2.2 → 3.2.4

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.
Files changed (30) hide show
  1. package/infrastructure/applications/BaseApplication.d.ts +32 -0
  2. package/infrastructure/applications/BaseApplication.js +25 -0
  3. package/infrastructure/applications/BaseApplication.js.map +1 -1
  4. package/infrastructure/applications/IAppModuleConfig.d.ts +30 -0
  5. package/infrastructure/applications/base/config.js +2 -0
  6. package/infrastructure/applications/base/config.js.map +1 -1
  7. package/infrastructure/applications/console/ConsoleApplication.d.ts +23 -0
  8. package/infrastructure/applications/console/ConsoleApplication.js +15 -0
  9. package/infrastructure/applications/console/ConsoleApplication.js.map +1 -1
  10. package/infrastructure/applications/rest/IRestAppModuleConfig.d.ts +16 -0
  11. package/infrastructure/applications/rest/RestApplication.d.ts +67 -0
  12. package/infrastructure/applications/rest/RestApplication.js +54 -0
  13. package/infrastructure/applications/rest/RestApplication.js.map +1 -1
  14. package/infrastructure/decorators/fields/BaseField.d.ts +49 -0
  15. package/infrastructure/decorators/fields/BaseField.js.map +1 -1
  16. package/infrastructure/repositories/CrudRepository.d.ts +13 -2
  17. package/infrastructure/repositories/CrudRepository.js +6 -0
  18. package/infrastructure/repositories/CrudRepository.js.map +1 -1
  19. package/package.json +2 -1
  20. package/tsconfig.tsbuildinfo +1 -1
  21. package/usecases/helpers/DataMapper.d.ts +2 -2
  22. package/usecases/helpers/DataMapper.js +13 -0
  23. package/usecases/helpers/DataMapper.js.map +1 -1
  24. package/usecases/interfaces/IValidator.d.ts +15 -0
  25. package/usecases/services/CrudService.d.ts +6 -0
  26. package/usecases/services/CrudService.js +6 -0
  27. package/usecases/services/CrudService.js.map +1 -1
  28. package/usecases/services/ReadService.d.ts +22 -0
  29. package/usecases/services/ReadService.js +22 -0
  30. 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;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,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;IAES,UAAU;IAEpB,CAAC;IAES,WAAW;QACjB,2BAAY,CAAC,eAAe,EAAE,CAAC;IACnC,CAAC;CAGJ;AA1BD,0CA0BC"}
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;SACL,CAAC,MAAM,CAAC,OAAO,CAAC;KACpB,CAAC;CACL,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;IAKnD,YAAY,WAAW,GAAG,qBAAS;QAC/B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACpC,CAAC;IAES,OAAO;QACb,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QAE7B,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,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,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;AAhCD,gDAgCC"}
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":"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"}
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;AAwChD,MAAM,aAAa,GAAG,CAAC,SAAS,EAAY,EAAE;IACjD,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAA,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;KAClF;IACD,OAAO,OAAO,CAAC,WAAW,CAAC,0BAAkB,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAC9E,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AAEK,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,SAAiB,EAAoB,EAAE,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,2BAAmB,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAAlK,QAAA,eAAe,mBAAmJ;AAExK,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAU,EAAE,CAAC,IAAA,qBAAa,EAAC,WAAW,CAAC;KAC/E,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,uBAAe,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,IAAI,IAAI,CAAC;AADxE,QAAA,iBAAiB,qBACuD;AAE9E,MAAM,WAAW,GAAG,CAAC,SAAS,EAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,0BAAkB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;AAAnG,QAAA,WAAW,eAAwF;AAGzG,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,EAAY,EAAE;IACzE,MAAM,sBAAsB,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,SAAS,CAAC;SACpG,MAAM,CAAC,SAAS,CAAC,EAAE;QAChB,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAEtD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,YAAY,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,CAAA,EAAE;YACjE,OAAO,IAAI,CAAC;SACf;QAED,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC;IACjE,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,gBAAgB,EAAE,YAAY,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAEzD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,YAAY,EAAE;YACnC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpC,OAAO,gBAAgB,CAAC;SAC3B;QAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,YAAY,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,CAAA,EAAE;YACjE,gBAAgB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;SACvD;QAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,YAAY,EAAE;YACnC,gBAAgB,CAAC,IAAI,CAAC;gBAClB,YAAY;gBACZ,aAAa,EAAE,OAAO,CAAC,aAAa;aACvC,CAAC,CAAC;SACN;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC;SACL,MAAM,CAAC,CAAC,YAAY,EAAE,YAAoC,EAAE,EAAE;QAC3D,IAAI,IAAA,0BAAQ,EAAC,YAAY,CAAC,EAAE;YACxB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,OAAO,YAAY,CAAC;SACvB;QAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;YACnD,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;SAChD;QAED,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;YAC7B,OAAO,YAAY,CAAC;SACvB;QAED,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;QACnD,qFAAqF;QACrF,wFAAwF;QACxF,wFAAwF;QACxF,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEtE,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC5B,OAAO,YAAY,CAAC;SACvB;QACD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEvB,IAAI,IAAA,mBAAW,EAAC,aAAa,CAAC,EAAE;YAC5B,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC;iBAClG,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,YAAY,IAAI,eAAe,EAAE,CAAC,CAAC;YAC/E,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,gBAAgB,CAAC,CAAC;SACzD;QAED,OAAO,YAAY,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,OAAO,sBAAsB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC;AAlEW,QAAA,gBAAgB,oBAkE3B;AAEK,MAAM,oBAAoB,GAAG,CAChC,SAAS,EACT,cAAmD,EAC3C,EAAE,CAAC,IAAA,qBAAa,EAAC,SAAS,CAAC;KAClC,MAAM,CAAC,SAAS,CAAC,EAAE;IAChB,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC;KACD,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE;IACrB,MAAM,eAAe,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACjE,OAAO,cAAc,CAAC,eAAe,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAXM,QAAA,oBAAoB,wBAW1B;AAEA,MAAM,qBAAqB,GAAG,CAAC,WAAW,EAAE,SAAiB,EAAsB,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,qCAA6B,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAArK,QAAA,qBAAqB,yBAAgJ;AAE3K,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,SAAiB,EAAuC,EAAE;IACrG,MAAM,aAAa,GAAW,IAAA,6BAAqB,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;IACpD,IAAI,CAAC,SAAS,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,aAAa,eAAe,SAAS,EAAE,CAAC,CAAC;KACzF;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B;AAEF,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAE,eAAsC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;IACzH,0BAA0B;IAC1B,OAAO,CAAC,cAAc,CAAC,2BAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3E,OAAO,CAAC,cAAc,CAAC,qCAA6B,EAAE,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAE3G,oBAAoB;IACpB,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,0BAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChG,OAAO,CAAC,cAAc,CAAC,0BAAkB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,SAAgB,SAAS,CAAC,UAA6B,IAAI,EAAE,kBAAyC,EAAE;IACpG,OAAO,IAAA,wBAAe,EAClB,GAAG;QACC,mBAAmB,+BACf,KAAK,EAAE,IAAI,EACX,IAAI,EAAE,IAAI,IACP,OAAO,KACV,OAAO,EAAE,OAAO,OAAO,CAAC,OAAO,KAAK,SAAS;gBACzC,CAAC,CAAC,OAAO,CAAC,OAAO;gBACjB,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,IAAI,IAAI,CAAC,EACvC,OAAO,EAAE,eAAe,CAAC,OAAO,IAAI,IAAI,KACzC,eAAe,CAAC;QACnB,IAAA,qBAAW,EAAC;YACR,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,eAAe,CAAC,WAAW,IAAI,eAAe,CAAC,MAAM;YAC7E,WAAW,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YACvC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;YACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,KAAK;YACpC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO;SACtD,CAAC;QACF,OAAO,CAAC,SAAS,IAAI,IAAA,qBAAS,EAAC,OAAO,CAAC,SAAS,CAAC;QACjD,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,EAAC;YAC3B,OAAO,EAAE,4BAA4B;SACxC,CAAC;KACL,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AAzBD,8BAyBC"}
1
+ {"version":3,"file":"BaseField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/BaseField.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { EntityManager, Repository } from '@steroidsjs/typeorm';
1
+ import { DeepPartial, EntityManager, Repository } from '@steroidsjs/typeorm';
2
2
  import { ICrudRepository, TransactionHandler } from '../../usecases/interfaces/ICrudRepository';
3
3
  import { SearchInputDto } from '../../usecases/dtos/SearchInputDto';
4
4
  import { SearchResultDto } from '../../usecases/dtos/SearchResultDto';
@@ -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
@@ -104,7 +115,7 @@ export declare class CrudRepository<TModel> implements ICrudRepository<TModel>,
104
115
  * @param obj
105
116
  * @protected
106
117
  */
107
- protected entityToModel(obj: any): TModel;
118
+ protected entityToModel(obj: DeepPartial<TModel>): TModel;
108
119
  /**
109
120
  * Soft remove item
110
121
  * @param id
@@ -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
  }