mongodb-dynamic-api 1.2.0 → 1.2.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.
Files changed (65) hide show
  1. package/CHANGELOG.md +14 -14
  2. package/README.md +249 -22
  3. package/package.json +3 -3
  4. package/src/builders/route-decorators.builder.d.ts +2 -1
  5. package/src/builders/route-decorators.builder.js +3 -2
  6. package/src/dynamic-api.module.d.ts +1 -1
  7. package/src/dynamic-api.module.js +16 -13
  8. package/src/helpers/format.helper.d.ts +1 -0
  9. package/src/helpers/format.helper.js +8 -0
  10. package/src/helpers/index.d.ts +5 -1
  11. package/src/helpers/index.js +5 -1
  12. package/src/helpers/route-description.helper.d.ts +3 -0
  13. package/src/helpers/route-description.helper.js +28 -0
  14. package/src/helpers/swagger-config.helper.d.ts +4 -0
  15. package/src/helpers/{config.helper.js → swagger-config.helper.js} +36 -21
  16. package/src/helpers/validation-config.helper.d.ts +3 -0
  17. package/src/helpers/validation-config.helper.js +8 -0
  18. package/src/helpers/versioning-config.helper.d.ts +3 -0
  19. package/src/helpers/versioning-config.helper.js +11 -0
  20. package/src/{helpers/config.helper.d.ts → interfaces/dynamic-api-swagger-options.type.d.ts} +23 -15
  21. package/src/interfaces/dynamic-api-swagger-options.type.js +2 -0
  22. package/src/interfaces/index.d.ts +1 -1
  23. package/src/interfaces/index.js +1 -1
  24. package/src/modules/create-many/create-many-controller.mixin.js +6 -6
  25. package/src/modules/create-many/create-many.helper.d.ts +1 -1
  26. package/src/modules/create-many/create-many.helper.js +7 -7
  27. package/src/modules/create-many/create-many.module.d.ts +2 -2
  28. package/src/modules/create-many/create-many.module.js +2 -2
  29. package/src/modules/create-one/create-one-controller.mixin.js +5 -5
  30. package/src/modules/create-one/create-one.helper.d.ts +1 -1
  31. package/src/modules/create-one/create-one.helper.js +7 -7
  32. package/src/modules/create-one/create-one.module.d.ts +2 -2
  33. package/src/modules/create-one/create-one.module.js +2 -2
  34. package/src/modules/delete-one/delete-one-controller.mixin.js +5 -5
  35. package/src/modules/delete-one/delete-one.helper.d.ts +1 -1
  36. package/src/modules/delete-one/delete-one.helper.js +7 -7
  37. package/src/modules/delete-one/delete-one.module.d.ts +2 -2
  38. package/src/modules/delete-one/delete-one.module.js +2 -2
  39. package/src/modules/duplicate-one/duplicate-one-controller.mixin.js +6 -6
  40. package/src/modules/duplicate-one/duplicate-one.helper.d.ts +1 -1
  41. package/src/modules/duplicate-one/duplicate-one.helper.js +7 -7
  42. package/src/modules/duplicate-one/duplicate-one.module.d.ts +2 -2
  43. package/src/modules/duplicate-one/duplicate-one.module.js +2 -2
  44. package/src/modules/get-many/get-many-controller.mixin.js +5 -5
  45. package/src/modules/get-many/get-many.helper.d.ts +1 -1
  46. package/src/modules/get-many/get-many.helper.js +7 -7
  47. package/src/modules/get-many/get-many.module.d.ts +2 -2
  48. package/src/modules/get-many/get-many.module.js +2 -2
  49. package/src/modules/get-one/get-one-controller.mixin.js +6 -6
  50. package/src/modules/get-one/get-one.helper.d.ts +1 -1
  51. package/src/modules/get-one/get-one.helper.js +7 -7
  52. package/src/modules/get-one/get-one.module.d.ts +2 -2
  53. package/src/modules/get-one/get-one.module.js +2 -2
  54. package/src/modules/replace-one/replace-one-controller.mixin.js +6 -6
  55. package/src/modules/replace-one/replace-one.helper.d.ts +1 -1
  56. package/src/modules/replace-one/replace-one.helper.js +7 -7
  57. package/src/modules/replace-one/replace-one.module.d.ts +2 -2
  58. package/src/modules/replace-one/replace-one.module.js +2 -2
  59. package/src/modules/update-one/update-one-controller.mixin.js +6 -6
  60. package/src/modules/update-one/update-one.helper.d.ts +1 -1
  61. package/src/modules/update-one/update-one.helper.js +7 -7
  62. package/src/modules/update-one/update-one.module.d.ts +2 -2
  63. package/src/modules/update-one/update-one.module.js +2 -2
  64. package/src/version.json +1 -1
  65. package/tsconfig.tsbuildinfo +1 -1
@@ -20,10 +20,10 @@ const mongoose_2 = require("mongoose");
20
20
  const dynamic_api_module_1 = require("../../dynamic-api.module");
21
21
  const base_duplicate_one_service_1 = require("./base-duplicate-one.service");
22
22
  const duplicate_one_controller_mixin_1 = require("./duplicate-one-controller.mixin");
23
- function provideServiceName(entityName) {
24
- return `DuplicateOne${entityName}Service`;
23
+ function provideServiceName(entityName, version) {
24
+ return `DuplicateOne${entityName}${version ? 'V' + version : ''}Service`;
25
25
  }
26
- function createDuplicateOneServiceProvider(entity) {
26
+ function createDuplicateOneServiceProvider(entity, version) {
27
27
  let DuplicateOneService = class DuplicateOneService extends base_duplicate_one_service_1.BaseDuplicateOneService {
28
28
  constructor(model) {
29
29
  super(model);
@@ -36,11 +36,11 @@ function createDuplicateOneServiceProvider(entity) {
36
36
  __metadata("design:paramtypes", [mongoose_2.Model])
37
37
  ], DuplicateOneService);
38
38
  Object.defineProperty(DuplicateOneService, 'name', {
39
- value: provideServiceName(entity.name),
39
+ value: provideServiceName(entity.name, version),
40
40
  writable: false,
41
41
  });
42
42
  return {
43
- provide: provideServiceName(entity.name),
43
+ provide: provideServiceName(entity.name, version),
44
44
  useClass: DuplicateOneService,
45
45
  };
46
46
  }
@@ -56,11 +56,11 @@ function createDuplicateOneController(entity, path, apiTag, version, description
56
56
  (0, common_1.Controller)({ path, version }),
57
57
  (0, swagger_1.ApiTags)(apiTag || entity.name),
58
58
  (0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions ?? { transform: true })),
59
- __param(0, (0, common_1.Inject)(provideServiceName(entity.name))),
59
+ __param(0, (0, common_1.Inject)(provideServiceName(entity.name, version))),
60
60
  __metadata("design:paramtypes", [Object])
61
61
  ], DuplicateOneController);
62
62
  Object.defineProperty(DuplicateOneController, 'name', {
63
- value: `DuplicateOne${entity.name}Controller`,
63
+ value: `DuplicateOne${entity.name}${version ? 'V' + version : ''}Controller`,
64
64
  writable: false,
65
65
  });
66
66
  return DuplicateOneController;
@@ -1,6 +1,6 @@
1
1
  import { DynamicModule, Type, ValidationPipeOptions } from '@nestjs/common';
2
- import { DTOsBundle } from '../../interfaces';
2
+ import { ControllerOptions, RouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  export declare class DuplicateOneModule {
5
- static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
5
+ static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, { path, apiTag }: ControllerOptions, { description, dTOs: DTOs }: RouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
6
6
  }
@@ -11,9 +11,9 @@ exports.DuplicateOneModule = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
12
  const duplicate_one_helper_1 = require("./duplicate-one.helper");
13
13
  let DuplicateOneModule = DuplicateOneModule_1 = class DuplicateOneModule {
14
- static forFeature(databaseModule, entity, path, apiTag, version, description, DTOs, validationPipeOptions) {
14
+ static forFeature(databaseModule, entity, { path, apiTag }, { description, dTOs: DTOs }, version, validationPipeOptions) {
15
15
  const controller = (0, duplicate_one_helper_1.createDuplicateOneController)(entity, path, apiTag, version, description, DTOs, validationPipeOptions);
16
- const ServiceProvider = (0, duplicate_one_helper_1.createDuplicateOneServiceProvider)(entity);
16
+ const ServiceProvider = (0, duplicate_one_helper_1.createDuplicateOneServiceProvider)(entity, version);
17
17
  return {
18
18
  module: DuplicateOneModule_1,
19
19
  imports: [databaseModule],
@@ -19,13 +19,13 @@ const dtos_1 = require("../../dtos");
19
19
  const helpers_1 = require("../../helpers");
20
20
  const mixins_1 = require("../../mixins");
21
21
  function GetManyControllerMixin(entity, path, apiTag, version, description, DTOs) {
22
- const displayedName = apiTag ?? entity.name;
22
+ const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
23
23
  const { query: CustomQuery, presenter: CustomPresenter } = DTOs ?? {};
24
24
  class RouteQuery extends (CustomQuery ?? dtos_1.EntityQuery) {
25
25
  }
26
26
  if (!CustomQuery) {
27
27
  Object.defineProperty(RouteQuery, 'name', {
28
- value: `GetMany${displayedName}Query`,
28
+ value: `GetMany${displayedName}${version ? 'V' + version : ''}Query`,
29
29
  writable: false,
30
30
  });
31
31
  }
@@ -33,11 +33,11 @@ function GetManyControllerMixin(entity, path, apiTag, version, description, DTOs
33
33
  }
34
34
  if (!CustomPresenter) {
35
35
  Object.defineProperty(RoutePresenter, 'name', {
36
- value: `${displayedName}Presenter`,
36
+ value: `${displayedName}${version ? 'V' + version : ''}Presenter`,
37
37
  writable: false,
38
38
  });
39
39
  }
40
- const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('GetMany', entity, description, undefined, RouteQuery, undefined, RoutePresenter);
40
+ const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('GetMany', entity, version, description, undefined, RouteQuery, undefined, RoutePresenter);
41
41
  class BaseGetManyController {
42
42
  constructor(service) {
43
43
  this.service = service;
@@ -55,7 +55,7 @@ function GetManyControllerMixin(entity, path, apiTag, version, description, DTOs
55
55
  __metadata("design:returntype", Promise)
56
56
  ], BaseGetManyController.prototype, "getMany", null);
57
57
  Object.defineProperty(BaseGetManyController, 'name', {
58
- value: `GetMany${entity.name}Controller`,
58
+ value: `BaseGetMany${entity.name}${version ? 'V' + version : ''}Controller`,
59
59
  writable: false,
60
60
  });
61
61
  return BaseGetManyController;
@@ -2,6 +2,6 @@ import { Type, ValidationPipeOptions } from '@nestjs/common';
2
2
  import { DTOsBundle, ServiceProvider } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { GetManyControllerConstructor } from './get-many-controller.interface';
5
- declare function createGetManyServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>): ServiceProvider;
5
+ declare function createGetManyServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): ServiceProvider;
6
6
  declare function createGetManyController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): GetManyControllerConstructor<Entity>;
7
7
  export { createGetManyController, createGetManyServiceProvider };
@@ -20,10 +20,10 @@ const mongoose_2 = require("mongoose");
20
20
  const dynamic_api_module_1 = require("../../dynamic-api.module");
21
21
  const base_get_many_service_1 = require("./base-get-many.service");
22
22
  const get_many_controller_mixin_1 = require("./get-many-controller.mixin");
23
- function provideServiceName(entityName) {
24
- return `GetMany${entityName}Service`;
23
+ function provideServiceName(entityName, version) {
24
+ return `GetMany${entityName}${version ? 'V' + version : ''}Service`;
25
25
  }
26
- function createGetManyServiceProvider(entity) {
26
+ function createGetManyServiceProvider(entity, version) {
27
27
  let GetManyService = class GetManyService extends base_get_many_service_1.BaseGetManyService {
28
28
  constructor(model) {
29
29
  super(model);
@@ -36,11 +36,11 @@ function createGetManyServiceProvider(entity) {
36
36
  __metadata("design:paramtypes", [mongoose_2.Model])
37
37
  ], GetManyService);
38
38
  Object.defineProperty(GetManyService, 'name', {
39
- value: provideServiceName(entity.name),
39
+ value: provideServiceName(entity.name, version),
40
40
  writable: false,
41
41
  });
42
42
  return {
43
- provide: provideServiceName(entity.name),
43
+ provide: provideServiceName(entity.name, version),
44
44
  useClass: GetManyService,
45
45
  };
46
46
  }
@@ -56,11 +56,11 @@ function createGetManyController(entity, path, apiTag, version, description, DTO
56
56
  (0, common_1.Controller)({ path, version }),
57
57
  (0, swagger_1.ApiTags)(apiTag || entity.name),
58
58
  (0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions ?? { transform: true })),
59
- __param(0, (0, common_1.Inject)(provideServiceName(entity.name))),
59
+ __param(0, (0, common_1.Inject)(provideServiceName(entity.name, version))),
60
60
  __metadata("design:paramtypes", [Object])
61
61
  ], GetManyController);
62
62
  Object.defineProperty(GetManyController, 'name', {
63
- value: `GetMany${entity.name}Controller`,
63
+ value: `GetMany${entity.name}${version ? 'V' + version : ''}Controller`,
64
64
  writable: false,
65
65
  });
66
66
  return GetManyController;
@@ -1,6 +1,6 @@
1
1
  import { DynamicModule, Type, ValidationPipeOptions } from '@nestjs/common';
2
- import { DTOsBundle } from '../../interfaces';
2
+ import { ControllerOptions, RouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  export declare class GetManyModule {
5
- static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
5
+ static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, { path, apiTag }: ControllerOptions, { description, dTOs: DTOs }: RouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
6
6
  }
@@ -11,9 +11,9 @@ exports.GetManyModule = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
12
  const get_many_helper_1 = require("./get-many.helper");
13
13
  let GetManyModule = GetManyModule_1 = class GetManyModule {
14
- static forFeature(databaseModule, entity, path, apiTag, version, description, DTOs, validationPipeOptions) {
14
+ static forFeature(databaseModule, entity, { path, apiTag }, { description, dTOs: DTOs }, version, validationPipeOptions) {
15
15
  const controller = (0, get_many_helper_1.createGetManyController)(entity, path, apiTag, version, description, DTOs, validationPipeOptions);
16
- const ServiceProvider = (0, get_many_helper_1.createGetManyServiceProvider)(entity);
16
+ const ServiceProvider = (0, get_many_helper_1.createGetManyServiceProvider)(entity, version);
17
17
  return {
18
18
  module: GetManyModule_1,
19
19
  imports: [databaseModule],
@@ -19,13 +19,13 @@ const dtos_1 = require("../../dtos");
19
19
  const helpers_1 = require("../../helpers");
20
20
  const mixins_1 = require("../../mixins");
21
21
  function GetOneControllerMixin(entity, path, apiTag, version, description, DTOs) {
22
- const displayedName = apiTag ?? entity.name;
22
+ const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
23
23
  const { param: CustomParam, query: CustomQuery, presenter: CustomPresenter, } = DTOs ?? {};
24
24
  class RouteParam extends (CustomParam ?? dtos_1.EntityParam) {
25
25
  }
26
26
  if (!CustomParam) {
27
27
  Object.defineProperty(RouteParam, 'name', {
28
- value: `GetOne${displayedName}Param`,
28
+ value: `GetOne${displayedName}${version ? 'V' + version : ''}Param`,
29
29
  writable: false,
30
30
  });
31
31
  }
@@ -33,7 +33,7 @@ function GetOneControllerMixin(entity, path, apiTag, version, description, DTOs)
33
33
  }
34
34
  if (!CustomQuery) {
35
35
  Object.defineProperty(RouteQuery, 'name', {
36
- value: `GetOne${displayedName}Query`,
36
+ value: `GetOne${displayedName}${version ? 'V' + version : ''}Query`,
37
37
  writable: false,
38
38
  });
39
39
  }
@@ -41,11 +41,11 @@ function GetOneControllerMixin(entity, path, apiTag, version, description, DTOs)
41
41
  }
42
42
  if (!CustomPresenter) {
43
43
  Object.defineProperty(RoutePresenter, 'name', {
44
- value: `${displayedName}Presenter`,
44
+ value: `${displayedName}${version ? 'V' + version : ''}Presenter`,
45
45
  writable: false,
46
46
  });
47
47
  }
48
- const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('GetOne', entity, description, RouteParam, RouteQuery, undefined, RoutePresenter);
48
+ const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('GetOne', entity, version, description, RouteParam, RouteQuery, undefined, RoutePresenter);
49
49
  class BaseGetOneController {
50
50
  constructor(service) {
51
51
  this.service = service;
@@ -63,7 +63,7 @@ function GetOneControllerMixin(entity, path, apiTag, version, description, DTOs)
63
63
  __metadata("design:returntype", Promise)
64
64
  ], BaseGetOneController.prototype, "getOne", null);
65
65
  Object.defineProperty(BaseGetOneController, 'name', {
66
- value: `GetOne${entity.name}Controller`,
66
+ value: `BaseGetOne${entity.name}${version ? 'V' + version : ''}Controller`,
67
67
  writable: false,
68
68
  });
69
69
  return BaseGetOneController;
@@ -2,6 +2,6 @@ import { Type, ValidationPipeOptions } from '@nestjs/common';
2
2
  import { DTOsBundle, ServiceProvider } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { GetOneControllerConstructor } from './get-one-controller.interface';
5
- declare function createGetOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>): ServiceProvider;
5
+ declare function createGetOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): ServiceProvider;
6
6
  declare function createGetOneController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): GetOneControllerConstructor<Entity>;
7
7
  export { createGetOneController, createGetOneServiceProvider };
@@ -20,10 +20,10 @@ const mongoose_2 = require("mongoose");
20
20
  const dynamic_api_module_1 = require("../../dynamic-api.module");
21
21
  const base_get_one_service_1 = require("./base-get-one.service");
22
22
  const get_one_controller_mixin_1 = require("./get-one-controller.mixin");
23
- function provideServiceName(entityName) {
24
- return `GetOne${entityName}Service`;
23
+ function provideServiceName(entityName, version) {
24
+ return `GetOne${entityName}${version ? 'V' + version : ''}Service`;
25
25
  }
26
- function createGetOneServiceProvider(entity) {
26
+ function createGetOneServiceProvider(entity, version) {
27
27
  let GetOneService = class GetOneService extends base_get_one_service_1.BaseGetOneService {
28
28
  constructor(model) {
29
29
  super(model);
@@ -36,11 +36,11 @@ function createGetOneServiceProvider(entity) {
36
36
  __metadata("design:paramtypes", [mongoose_2.Model])
37
37
  ], GetOneService);
38
38
  Object.defineProperty(GetOneService, 'name', {
39
- value: provideServiceName(entity.name),
39
+ value: provideServiceName(entity.name, version),
40
40
  writable: false,
41
41
  });
42
42
  return {
43
- provide: provideServiceName(entity.name),
43
+ provide: provideServiceName(entity.name, version),
44
44
  useClass: GetOneService,
45
45
  };
46
46
  }
@@ -56,11 +56,11 @@ function createGetOneController(entity, path, apiTag, version, description, DTOs
56
56
  (0, common_1.Controller)({ path, version }),
57
57
  (0, swagger_1.ApiTags)(apiTag || entity.name),
58
58
  (0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions ?? { transform: true })),
59
- __param(0, (0, common_1.Inject)(provideServiceName(entity.name))),
59
+ __param(0, (0, common_1.Inject)(provideServiceName(entity.name, version))),
60
60
  __metadata("design:paramtypes", [Object])
61
61
  ], GetOneController);
62
62
  Object.defineProperty(GetOneController, 'name', {
63
- value: `GetOne${entity.name}Controller`,
63
+ value: `GetOne${entity.name}${version ? 'V' + version : ''}Controller`,
64
64
  writable: false,
65
65
  });
66
66
  return GetOneController;
@@ -1,6 +1,6 @@
1
1
  import { DynamicModule, Type, ValidationPipeOptions } from '@nestjs/common';
2
- import { DTOsBundle } from '../../interfaces';
2
+ import { ControllerOptions, RouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  export declare class GetOneModule {
5
- static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
5
+ static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, { path, apiTag }: ControllerOptions, { description, dTOs: DTOs }: RouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
6
6
  }
@@ -11,9 +11,9 @@ exports.GetOneModule = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
12
  const get_one_helper_1 = require("./get-one.helper");
13
13
  let GetOneModule = GetOneModule_1 = class GetOneModule {
14
- static forFeature(databaseModule, entity, path, apiTag, version, description, DTOs, validationPipeOptions) {
14
+ static forFeature(databaseModule, entity, { path, apiTag }, { description, dTOs: DTOs }, version, validationPipeOptions) {
15
15
  const controller = (0, get_one_helper_1.createGetOneController)(entity, path, apiTag, version, description, DTOs, validationPipeOptions);
16
- const ServiceProvider = (0, get_one_helper_1.createGetOneServiceProvider)(entity);
16
+ const ServiceProvider = (0, get_one_helper_1.createGetOneServiceProvider)(entity, version);
17
17
  return {
18
18
  module: GetOneModule_1,
19
19
  imports: [databaseModule],
@@ -19,13 +19,13 @@ const dtos_1 = require("../../dtos");
19
19
  const helpers_1 = require("../../helpers");
20
20
  const mixins_1 = require("../../mixins");
21
21
  function ReplaceOneControllerMixin(entity, path, apiTag, version, description, DTOs) {
22
- const displayedName = apiTag ?? entity.name;
22
+ const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
23
23
  const { body: CustomBody, param: CustomParam, presenter: CustomPresenter, } = DTOs ?? {};
24
24
  class RouteBody extends (CustomBody ?? (0, mixins_1.EntityBodyMixin)(entity)) {
25
25
  }
26
26
  if (!CustomBody) {
27
27
  Object.defineProperty(RouteBody, 'name', {
28
- value: `ReplaceOne${displayedName}Dto`,
28
+ value: `ReplaceOne${displayedName}${version ? 'V' + version : ''}Dto`,
29
29
  writable: false,
30
30
  });
31
31
  }
@@ -33,7 +33,7 @@ function ReplaceOneControllerMixin(entity, path, apiTag, version, description, D
33
33
  }
34
34
  if (!CustomParam) {
35
35
  Object.defineProperty(RouteParam, 'name', {
36
- value: `ReplaceOne${displayedName}Param`,
36
+ value: `ReplaceOne${displayedName}${version ? 'V' + version : ''}Param`,
37
37
  writable: false,
38
38
  });
39
39
  }
@@ -41,11 +41,11 @@ function ReplaceOneControllerMixin(entity, path, apiTag, version, description, D
41
41
  }
42
42
  if (!CustomPresenter) {
43
43
  Object.defineProperty(RoutePresenter, 'name', {
44
- value: `${displayedName}Presenter`,
44
+ value: `${displayedName}${version ? 'V' + version : ''}Presenter`,
45
45
  writable: false,
46
46
  });
47
47
  }
48
- const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('ReplaceOne', entity, description, RouteParam, undefined, RouteBody, RoutePresenter);
48
+ const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('ReplaceOne', entity, version, description, RouteParam, undefined, RouteBody, RoutePresenter);
49
49
  class BaseReplaceOneController {
50
50
  constructor(service) {
51
51
  this.service = service;
@@ -64,7 +64,7 @@ function ReplaceOneControllerMixin(entity, path, apiTag, version, description, D
64
64
  __metadata("design:returntype", Promise)
65
65
  ], BaseReplaceOneController.prototype, "replaceOne", null);
66
66
  Object.defineProperty(BaseReplaceOneController, 'name', {
67
- value: `ReplaceOne${entity.name}Controller`,
67
+ value: `BaseReplaceOne${entity.name}${version ? 'V' + version : ''}Controller`,
68
68
  writable: false,
69
69
  });
70
70
  return BaseReplaceOneController;
@@ -2,6 +2,6 @@ import { Type, ValidationPipeOptions } from '@nestjs/common';
2
2
  import { DTOsBundle, ServiceProvider } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { ReplaceOneControllerConstructor } from './replace-one-controller.interface';
5
- declare function createReplaceOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>): ServiceProvider;
5
+ declare function createReplaceOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): ServiceProvider;
6
6
  declare function createReplaceOneController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): ReplaceOneControllerConstructor<Entity>;
7
7
  export { createReplaceOneController, createReplaceOneServiceProvider };
@@ -20,10 +20,10 @@ const mongoose_2 = require("mongoose");
20
20
  const dynamic_api_module_1 = require("../../dynamic-api.module");
21
21
  const base_replace_one_service_1 = require("./base-replace-one.service");
22
22
  const replace_one_controller_mixin_1 = require("./replace-one-controller.mixin");
23
- function provideServiceName(entityName) {
24
- return `ReplaceOne${entityName}Service`;
23
+ function provideServiceName(entityName, version) {
24
+ return `ReplaceOne${entityName}${version ? 'V' + version : ''}Service`;
25
25
  }
26
- function createReplaceOneServiceProvider(entity) {
26
+ function createReplaceOneServiceProvider(entity, version) {
27
27
  let ReplaceOneService = class ReplaceOneService extends base_replace_one_service_1.BaseReplaceOneService {
28
28
  constructor(model) {
29
29
  super(model);
@@ -36,11 +36,11 @@ function createReplaceOneServiceProvider(entity) {
36
36
  __metadata("design:paramtypes", [mongoose_2.Model])
37
37
  ], ReplaceOneService);
38
38
  Object.defineProperty(ReplaceOneService, 'name', {
39
- value: provideServiceName(entity.name),
39
+ value: provideServiceName(entity.name, version),
40
40
  writable: false,
41
41
  });
42
42
  return {
43
- provide: provideServiceName(entity.name),
43
+ provide: provideServiceName(entity.name, version),
44
44
  useClass: ReplaceOneService,
45
45
  };
46
46
  }
@@ -56,11 +56,11 @@ function createReplaceOneController(entity, path, apiTag, version, description,
56
56
  (0, common_1.Controller)({ path, version }),
57
57
  (0, swagger_1.ApiTags)(apiTag || entity.name),
58
58
  (0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions ?? { transform: true })),
59
- __param(0, (0, common_1.Inject)(provideServiceName(entity.name))),
59
+ __param(0, (0, common_1.Inject)(provideServiceName(entity.name, version))),
60
60
  __metadata("design:paramtypes", [Object])
61
61
  ], ReplaceOneController);
62
62
  Object.defineProperty(ReplaceOneController, 'name', {
63
- value: `ReplaceOne${entity.name}Controller`,
63
+ value: `ReplaceOne${entity.name}${version ? 'V' + version : ''}Controller`,
64
64
  writable: false,
65
65
  });
66
66
  return ReplaceOneController;
@@ -1,6 +1,6 @@
1
1
  import { DynamicModule, Type, ValidationPipeOptions } from '@nestjs/common';
2
- import { DTOsBundle } from '../../interfaces';
2
+ import { ControllerOptions, RouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  export declare class ReplaceOneModule {
5
- static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
5
+ static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, { path, apiTag }: ControllerOptions, { description, dTOs: DTOs }: RouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
6
6
  }
@@ -11,9 +11,9 @@ exports.ReplaceOneModule = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
12
  const replace_one_helper_1 = require("./replace-one.helper");
13
13
  let ReplaceOneModule = ReplaceOneModule_1 = class ReplaceOneModule {
14
- static forFeature(databaseModule, entity, path, apiTag, version, description, DTOs, validationPipeOptions) {
14
+ static forFeature(databaseModule, entity, { path, apiTag }, { description, dTOs: DTOs }, version, validationPipeOptions) {
15
15
  const controller = (0, replace_one_helper_1.createReplaceOneController)(entity, path, apiTag, version, description, DTOs, validationPipeOptions);
16
- const ServiceProvider = (0, replace_one_helper_1.createReplaceOneServiceProvider)(entity);
16
+ const ServiceProvider = (0, replace_one_helper_1.createReplaceOneServiceProvider)(entity, version);
17
17
  return {
18
18
  module: ReplaceOneModule_1,
19
19
  imports: [databaseModule],
@@ -19,13 +19,13 @@ const dtos_1 = require("../../dtos");
19
19
  const helpers_1 = require("../../helpers");
20
20
  const mixins_1 = require("../../mixins");
21
21
  function UpdateOneControllerMixin(entity, path, apiTag, version, description, DTOs) {
22
- const displayedName = apiTag ?? entity.name;
22
+ const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
23
23
  const { body: CustomBody, param: CustomParam, presenter: CustomPresenter, } = DTOs ?? {};
24
24
  class RouteBody extends (CustomBody ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
25
25
  }
26
26
  if (!CustomBody) {
27
27
  Object.defineProperty(RouteBody, 'name', {
28
- value: `UpdateOne${displayedName}Dto`,
28
+ value: `UpdateOne${displayedName}${version ? 'V' + version : ''}Dto`,
29
29
  writable: false,
30
30
  });
31
31
  }
@@ -33,7 +33,7 @@ function UpdateOneControllerMixin(entity, path, apiTag, version, description, DT
33
33
  }
34
34
  if (!CustomParam) {
35
35
  Object.defineProperty(RouteParam, 'name', {
36
- value: `UpdateOne${displayedName}Param`,
36
+ value: `UpdateOne${displayedName}${version ? 'V' + version : ''}Param`,
37
37
  writable: false,
38
38
  });
39
39
  }
@@ -41,11 +41,11 @@ function UpdateOneControllerMixin(entity, path, apiTag, version, description, DT
41
41
  }
42
42
  if (!CustomPresenter) {
43
43
  Object.defineProperty(RoutePresenter, 'name', {
44
- value: `${displayedName}Presenter`,
44
+ value: `${displayedName}${version ? 'V' + version : ''}Presenter`,
45
45
  writable: false,
46
46
  });
47
47
  }
48
- const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('UpdateOne', entity, description, RouteParam, undefined, RouteBody, RoutePresenter);
48
+ const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('UpdateOne', entity, version, description, RouteParam, undefined, RouteBody, RoutePresenter);
49
49
  class BaseUpdateOneController {
50
50
  constructor(service) {
51
51
  this.service = service;
@@ -64,7 +64,7 @@ function UpdateOneControllerMixin(entity, path, apiTag, version, description, DT
64
64
  __metadata("design:returntype", Promise)
65
65
  ], BaseUpdateOneController.prototype, "updateOne", null);
66
66
  Object.defineProperty(BaseUpdateOneController, 'name', {
67
- value: `UpdateOne${entity.name}Controller`,
67
+ value: `BaseUpdateOne${entity.name}${version ? 'V' + version : ''}Controller`,
68
68
  writable: false,
69
69
  });
70
70
  return BaseUpdateOneController;
@@ -2,6 +2,6 @@ import { Type, ValidationPipeOptions } from '@nestjs/common';
2
2
  import { DTOsBundle, ServiceProvider } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { UpdateOneControllerConstructor } from './update-one-controller.interface';
5
- declare function createUpdateOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>): ServiceProvider;
5
+ declare function createUpdateOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): ServiceProvider;
6
6
  declare function createUpdateOneController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): UpdateOneControllerConstructor<Entity>;
7
7
  export { createUpdateOneController, createUpdateOneServiceProvider };
@@ -20,10 +20,10 @@ const mongoose_2 = require("mongoose");
20
20
  const dynamic_api_module_1 = require("../../dynamic-api.module");
21
21
  const base_update_one_service_1 = require("./base-update-one.service");
22
22
  const update_one_controller_mixin_1 = require("./update-one-controller.mixin");
23
- function provideServiceName(entityName) {
24
- return `UpdateOne${entityName}Service`;
23
+ function provideServiceName(entityName, version) {
24
+ return `UpdateOne${entityName}${version ? 'V' + version : ''}Service`;
25
25
  }
26
- function createUpdateOneServiceProvider(entity) {
26
+ function createUpdateOneServiceProvider(entity, version) {
27
27
  let UpdateOneService = class UpdateOneService extends base_update_one_service_1.BaseUpdateOneService {
28
28
  constructor(model) {
29
29
  super(model);
@@ -36,11 +36,11 @@ function createUpdateOneServiceProvider(entity) {
36
36
  __metadata("design:paramtypes", [mongoose_2.Model])
37
37
  ], UpdateOneService);
38
38
  Object.defineProperty(UpdateOneService, 'name', {
39
- value: provideServiceName(entity.name),
39
+ value: provideServiceName(entity.name, version),
40
40
  writable: false,
41
41
  });
42
42
  return {
43
- provide: provideServiceName(entity.name),
43
+ provide: provideServiceName(entity.name, version),
44
44
  useClass: UpdateOneService,
45
45
  };
46
46
  }
@@ -56,11 +56,11 @@ function createUpdateOneController(entity, path, apiTag, version, description, D
56
56
  (0, common_1.Controller)({ path, version }),
57
57
  (0, swagger_1.ApiTags)(apiTag || entity.name),
58
58
  (0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions ?? { transform: true })),
59
- __param(0, (0, common_1.Inject)(provideServiceName(entity.name))),
59
+ __param(0, (0, common_1.Inject)(provideServiceName(entity.name, version))),
60
60
  __metadata("design:paramtypes", [Object])
61
61
  ], UpdateOneController);
62
62
  Object.defineProperty(UpdateOneController, 'name', {
63
- value: `UpdateOne${entity.name}Controller`,
63
+ value: `UpdateOne${entity.name}${version ? 'V' + version : ''}Controller`,
64
64
  writable: false,
65
65
  });
66
66
  return UpdateOneController;
@@ -1,6 +1,6 @@
1
1
  import { DynamicModule, Type, ValidationPipeOptions } from '@nestjs/common';
2
- import { DTOsBundle } from '../../interfaces';
2
+ import { ControllerOptions, RouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  export declare class UpdateOneModule {
5
- static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
5
+ static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, { path, apiTag }: ControllerOptions, { description, dTOs: DTOs }: RouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
6
6
  }
@@ -11,9 +11,9 @@ exports.UpdateOneModule = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
12
  const update_one_helper_1 = require("./update-one.helper");
13
13
  let UpdateOneModule = UpdateOneModule_1 = class UpdateOneModule {
14
- static forFeature(databaseModule, entity, path, apiTag, version, description, DTOs, validationPipeOptions) {
14
+ static forFeature(databaseModule, entity, { path, apiTag }, { description, dTOs: DTOs }, version, validationPipeOptions) {
15
15
  const controller = (0, update_one_helper_1.createUpdateOneController)(entity, path, apiTag, version, description, DTOs, validationPipeOptions);
16
- const ServiceProvider = (0, update_one_helper_1.createUpdateOneServiceProvider)(entity);
16
+ const ServiceProvider = (0, update_one_helper_1.createUpdateOneServiceProvider)(entity, version);
17
17
  return {
18
18
  module: UpdateOneModule_1,
19
19
  imports: [databaseModule],
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "1.2.0"
2
+ "version": "1.2.1"
3
3
  }