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.
- package/CHANGELOG.md +14 -14
- package/README.md +249 -22
- package/package.json +3 -3
- package/src/builders/route-decorators.builder.d.ts +2 -1
- package/src/builders/route-decorators.builder.js +3 -2
- package/src/dynamic-api.module.d.ts +1 -1
- package/src/dynamic-api.module.js +16 -13
- package/src/helpers/format.helper.d.ts +1 -0
- package/src/helpers/format.helper.js +8 -0
- package/src/helpers/index.d.ts +5 -1
- package/src/helpers/index.js +5 -1
- package/src/helpers/route-description.helper.d.ts +3 -0
- package/src/helpers/route-description.helper.js +28 -0
- package/src/helpers/swagger-config.helper.d.ts +4 -0
- package/src/helpers/{config.helper.js → swagger-config.helper.js} +36 -21
- package/src/helpers/validation-config.helper.d.ts +3 -0
- package/src/helpers/validation-config.helper.js +8 -0
- package/src/helpers/versioning-config.helper.d.ts +3 -0
- package/src/helpers/versioning-config.helper.js +11 -0
- package/src/{helpers/config.helper.d.ts → interfaces/dynamic-api-swagger-options.type.d.ts} +23 -15
- package/src/interfaces/dynamic-api-swagger-options.type.js +2 -0
- package/src/interfaces/index.d.ts +1 -1
- package/src/interfaces/index.js +1 -1
- package/src/modules/create-many/create-many-controller.mixin.js +6 -6
- package/src/modules/create-many/create-many.helper.d.ts +1 -1
- package/src/modules/create-many/create-many.helper.js +7 -7
- package/src/modules/create-many/create-many.module.d.ts +2 -2
- package/src/modules/create-many/create-many.module.js +2 -2
- package/src/modules/create-one/create-one-controller.mixin.js +5 -5
- package/src/modules/create-one/create-one.helper.d.ts +1 -1
- package/src/modules/create-one/create-one.helper.js +7 -7
- package/src/modules/create-one/create-one.module.d.ts +2 -2
- package/src/modules/create-one/create-one.module.js +2 -2
- package/src/modules/delete-one/delete-one-controller.mixin.js +5 -5
- package/src/modules/delete-one/delete-one.helper.d.ts +1 -1
- package/src/modules/delete-one/delete-one.helper.js +7 -7
- package/src/modules/delete-one/delete-one.module.d.ts +2 -2
- package/src/modules/delete-one/delete-one.module.js +2 -2
- package/src/modules/duplicate-one/duplicate-one-controller.mixin.js +6 -6
- package/src/modules/duplicate-one/duplicate-one.helper.d.ts +1 -1
- package/src/modules/duplicate-one/duplicate-one.helper.js +7 -7
- package/src/modules/duplicate-one/duplicate-one.module.d.ts +2 -2
- package/src/modules/duplicate-one/duplicate-one.module.js +2 -2
- package/src/modules/get-many/get-many-controller.mixin.js +5 -5
- package/src/modules/get-many/get-many.helper.d.ts +1 -1
- package/src/modules/get-many/get-many.helper.js +7 -7
- package/src/modules/get-many/get-many.module.d.ts +2 -2
- package/src/modules/get-many/get-many.module.js +2 -2
- package/src/modules/get-one/get-one-controller.mixin.js +6 -6
- package/src/modules/get-one/get-one.helper.d.ts +1 -1
- package/src/modules/get-one/get-one.helper.js +7 -7
- package/src/modules/get-one/get-one.module.d.ts +2 -2
- package/src/modules/get-one/get-one.module.js +2 -2
- package/src/modules/replace-one/replace-one-controller.mixin.js +6 -6
- package/src/modules/replace-one/replace-one.helper.d.ts +1 -1
- package/src/modules/replace-one/replace-one.helper.js +7 -7
- package/src/modules/replace-one/replace-one.module.d.ts +2 -2
- package/src/modules/replace-one/replace-one.module.js +2 -2
- package/src/modules/update-one/update-one-controller.mixin.js +6 -6
- package/src/modules/update-one/update-one.helper.d.ts +1 -1
- package/src/modules/update-one/update-one.helper.js +7 -7
- package/src/modules/update-one/update-one.module.d.ts +2 -2
- package/src/modules/update-one/update-one.module.js +2 -2
- package/src/version.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
3
|
+
exports.enableDynamicAPISwagger = void 0;
|
|
5
4
|
const swagger_1 = require("@nestjs/swagger");
|
|
6
5
|
const version_json_1 = require("../version.json");
|
|
7
6
|
function buildExtraConfig(config, swaggerConfig) {
|
|
@@ -52,19 +51,44 @@ function buildExtraConfig(config, swaggerConfig) {
|
|
|
52
51
|
});
|
|
53
52
|
break;
|
|
54
53
|
case 'bearerAuth':
|
|
55
|
-
|
|
54
|
+
if (typeof value === 'boolean' && value) {
|
|
55
|
+
config.addBearerAuth();
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
config.addBearerAuth(value);
|
|
59
|
+
}
|
|
56
60
|
break;
|
|
57
61
|
case 'oAuth2':
|
|
58
|
-
|
|
62
|
+
if (typeof value === 'boolean' && value) {
|
|
63
|
+
config.addOAuth2();
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
config.addOAuth2(value);
|
|
67
|
+
}
|
|
59
68
|
break;
|
|
60
69
|
case 'apiKey':
|
|
61
|
-
|
|
70
|
+
if (typeof value === 'boolean' && value) {
|
|
71
|
+
config.addApiKey();
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
config.addApiKey(value);
|
|
75
|
+
}
|
|
62
76
|
break;
|
|
63
77
|
case 'basicAuth':
|
|
64
|
-
|
|
78
|
+
if (typeof value === 'boolean' && value) {
|
|
79
|
+
config.addBasicAuth();
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
config.addBasicAuth(value);
|
|
83
|
+
}
|
|
65
84
|
break;
|
|
66
85
|
case 'cookieAuth':
|
|
67
|
-
|
|
86
|
+
if (typeof value === 'boolean' && value) {
|
|
87
|
+
config.addCookieAuth();
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
config.addCookieAuth(value.cookieName, value.options, value.securityName);
|
|
91
|
+
}
|
|
68
92
|
break;
|
|
69
93
|
default:
|
|
70
94
|
break;
|
|
@@ -72,24 +96,15 @@ function buildExtraConfig(config, swaggerConfig) {
|
|
|
72
96
|
});
|
|
73
97
|
}
|
|
74
98
|
function enableDynamicAPISwagger(app, options = {}) {
|
|
75
|
-
const { title = 'MongoDB Dynamic API', description = 'Auto generated CRUD for MongoDB', version = version_json_1.default?.version?.split('-beta')[0], path = '/
|
|
99
|
+
const { title = 'MongoDB Dynamic API', description = 'Auto generated CRUD for MongoDB', version = version_json_1.default?.version?.split('-beta')[0], path = '/dynamic-api', swaggerExtraConfig, swaggerDocumentOptions, } = options ?? {};
|
|
76
100
|
const config = new swagger_1.DocumentBuilder()
|
|
77
101
|
.setTitle(title)
|
|
78
102
|
.setDescription(description)
|
|
79
103
|
.setVersion(version);
|
|
80
|
-
|
|
81
|
-
|
|
104
|
+
if (swaggerExtraConfig) {
|
|
105
|
+
buildExtraConfig(config, swaggerExtraConfig);
|
|
106
|
+
}
|
|
107
|
+
const document = swagger_1.SwaggerModule.createDocument(app, config.build(), swaggerDocumentOptions);
|
|
82
108
|
swagger_1.SwaggerModule.setup(path, app, document);
|
|
83
109
|
}
|
|
84
110
|
exports.enableDynamicAPISwagger = enableDynamicAPISwagger;
|
|
85
|
-
function enableDynamicAPIVersioning(app, options) {
|
|
86
|
-
app.enableVersioning({
|
|
87
|
-
type: common_1.VersioningType.URI,
|
|
88
|
-
...options,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
exports.enableDynamicAPIVersioning = enableDynamicAPIVersioning;
|
|
92
|
-
function enableDynamicAPIValidation(app, options = {}) {
|
|
93
|
-
app.useGlobalPipes(new common_1.ValidationPipe(options));
|
|
94
|
-
}
|
|
95
|
-
exports.enableDynamicAPIValidation = enableDynamicAPIValidation;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enableDynamicAPIValidation = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
function enableDynamicAPIValidation(app, options = {}) {
|
|
6
|
+
app.useGlobalPipes(new common_1.ValidationPipe(options));
|
|
7
|
+
}
|
|
8
|
+
exports.enableDynamicAPIValidation = enableDynamicAPIValidation;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enableDynamicAPIVersioning = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
function enableDynamicAPIVersioning(app, options) {
|
|
6
|
+
app.enableVersioning({
|
|
7
|
+
type: common_1.VersioningType.URI,
|
|
8
|
+
...options,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
exports.enableDynamicAPIVersioning = enableDynamicAPIVersioning;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { INestApplication, ValidationPipeOptions, VersioningOptions } from '@nestjs/common';
|
|
2
1
|
import { SwaggerDocumentOptions } from '@nestjs/swagger';
|
|
3
2
|
import { ExternalDocumentationObject, ParameterObject, SecuritySchemeObject, ServerVariableObject } from '@nestjs/swagger/dist/interfaces/open-api-spec.interface';
|
|
4
3
|
type DynamicAPISwaggerExtraConfig = {
|
|
@@ -37,25 +36,34 @@ type DynamicAPISwaggerExtraConfig = {
|
|
|
37
36
|
securityRequirements?: {
|
|
38
37
|
[key: string]: string[];
|
|
39
38
|
};
|
|
40
|
-
bearerAuth?:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
bearerAuth?: {
|
|
40
|
+
options?: SecuritySchemeObject;
|
|
41
|
+
name?: string;
|
|
42
|
+
} | boolean;
|
|
43
|
+
oAuth2?: {
|
|
44
|
+
options?: SecuritySchemeObject;
|
|
45
|
+
name?: string;
|
|
46
|
+
} | boolean;
|
|
47
|
+
apiKey?: {
|
|
48
|
+
options?: SecuritySchemeObject;
|
|
49
|
+
name?: string;
|
|
50
|
+
} | boolean;
|
|
51
|
+
basicAuth?: {
|
|
52
|
+
options?: SecuritySchemeObject;
|
|
53
|
+
name?: string;
|
|
54
|
+
} | boolean;
|
|
44
55
|
cookieAuth?: {
|
|
45
|
-
cookieName
|
|
46
|
-
options
|
|
47
|
-
securityName
|
|
48
|
-
};
|
|
56
|
+
cookieName?: string;
|
|
57
|
+
options?: SecuritySchemeObject;
|
|
58
|
+
securityName?: string;
|
|
59
|
+
} | boolean;
|
|
49
60
|
};
|
|
50
61
|
type DynamicAPISwaggerOptions = {
|
|
51
62
|
title?: string;
|
|
52
63
|
description?: string;
|
|
53
64
|
version?: string;
|
|
54
65
|
path?: string;
|
|
55
|
-
|
|
56
|
-
|
|
66
|
+
swaggerExtraConfig?: DynamicAPISwaggerExtraConfig;
|
|
67
|
+
swaggerDocumentOptions?: SwaggerDocumentOptions;
|
|
57
68
|
};
|
|
58
|
-
|
|
59
|
-
declare function enableDynamicAPIVersioning(app: INestApplication, options?: VersioningOptions): void;
|
|
60
|
-
declare function enableDynamicAPIValidation(app: INestApplication, options?: ValidationPipeOptions): void;
|
|
61
|
-
export { enableDynamicAPISwagger, enableDynamicAPIVersioning, enableDynamicAPIValidation, DynamicAPISwaggerOptions, DynamicAPISwaggerExtraConfig, };
|
|
69
|
+
export { DynamicAPISwaggerOptions, DynamicAPISwaggerExtraConfig };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from './entity-mappers.interface';
|
|
2
2
|
export * from './dynamic-api-options.interface';
|
|
3
3
|
export * from './dynamic-api-schema-options.interface';
|
|
4
|
-
export * from './
|
|
4
|
+
export * from './dynamic-api-swagger-options.type';
|
|
5
5
|
export * from './route-config.interface';
|
|
6
6
|
export * from './service-provider.interface';
|
package/src/interfaces/index.js
CHANGED
|
@@ -17,6 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./entity-mappers.interface"), exports);
|
|
18
18
|
__exportStar(require("./dynamic-api-options.interface"), exports);
|
|
19
19
|
__exportStar(require("./dynamic-api-schema-options.interface"), exports);
|
|
20
|
-
__exportStar(require("./
|
|
20
|
+
__exportStar(require("./dynamic-api-swagger-options.type"), exports);
|
|
21
21
|
__exportStar(require("./route-config.interface"), exports);
|
|
22
22
|
__exportStar(require("./service-provider.interface"), exports);
|
|
@@ -21,12 +21,12 @@ const builders_1 = require("../../builders");
|
|
|
21
21
|
const helpers_1 = require("../../helpers");
|
|
22
22
|
const mixins_1 = require("../../mixins");
|
|
23
23
|
function CreateManyControllerMixin(entity, path, apiTag, version, description, DTOs) {
|
|
24
|
-
const displayedName = apiTag ?? entity.name;
|
|
24
|
+
const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
|
|
25
25
|
const { body: CustomBody, presenter: CustomPresenter } = DTOs ?? {};
|
|
26
26
|
class DtoBody extends (0, mixins_1.EntityBodyMixin)(entity) {
|
|
27
27
|
}
|
|
28
28
|
Object.defineProperty(DtoBody, 'name', {
|
|
29
|
-
value: `${displayedName}Dto`,
|
|
29
|
+
value: `${displayedName}${version ? 'V' + version : ''}Dto`,
|
|
30
30
|
writable: false,
|
|
31
31
|
});
|
|
32
32
|
class CreateManyBody {
|
|
@@ -43,7 +43,7 @@ function CreateManyControllerMixin(entity, path, apiTag, version, description, D
|
|
|
43
43
|
}
|
|
44
44
|
if (!CustomBody) {
|
|
45
45
|
Object.defineProperty(RouteBody, 'name', {
|
|
46
|
-
value: `CreateMany${displayedName}Dto`,
|
|
46
|
+
value: `CreateMany${displayedName}${version ? 'V' + version : ''}Dto`,
|
|
47
47
|
writable: false,
|
|
48
48
|
});
|
|
49
49
|
}
|
|
@@ -51,11 +51,11 @@ function CreateManyControllerMixin(entity, path, apiTag, version, description, D
|
|
|
51
51
|
}
|
|
52
52
|
if (!CustomPresenter) {
|
|
53
53
|
Object.defineProperty(RoutePresenter, 'name', {
|
|
54
|
-
value: `${displayedName}Presenter`,
|
|
54
|
+
value: `${displayedName}${version ? 'V' + version : ''}Presenter`,
|
|
55
55
|
writable: false,
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
|
-
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('CreateMany', entity, description, undefined, undefined, RouteBody, RoutePresenter);
|
|
58
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('CreateMany', entity, version, description, undefined, undefined, RouteBody, RoutePresenter);
|
|
59
59
|
class BaseCreateManyController {
|
|
60
60
|
constructor(service) {
|
|
61
61
|
this.service = service;
|
|
@@ -73,7 +73,7 @@ function CreateManyControllerMixin(entity, path, apiTag, version, description, D
|
|
|
73
73
|
__metadata("design:returntype", Promise)
|
|
74
74
|
], BaseCreateManyController.prototype, "createMany", null);
|
|
75
75
|
Object.defineProperty(BaseCreateManyController, 'name', {
|
|
76
|
-
value: `
|
|
76
|
+
value: `BaseCreateMany${entity.name}${version ? 'V' + version : ''}Controller`,
|
|
77
77
|
writable: false,
|
|
78
78
|
});
|
|
79
79
|
return BaseCreateManyController;
|
|
@@ -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 { CreateManyControllerConstructor } from './create-many-controller.interface';
|
|
5
|
-
declare function createCreateManyServiceProvider<Entity extends BaseEntity>(entity: Type<Entity
|
|
5
|
+
declare function createCreateManyServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): ServiceProvider;
|
|
6
6
|
declare function createCreateManyController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): CreateManyControllerConstructor<Entity>;
|
|
7
7
|
export { createCreateManyController, createCreateManyServiceProvider };
|
|
@@ -20,10 +20,10 @@ const mongoose_2 = require("mongoose");
|
|
|
20
20
|
const dynamic_api_module_1 = require("../../dynamic-api.module");
|
|
21
21
|
const base_create_many_service_1 = require("./base-create-many.service");
|
|
22
22
|
const create_many_controller_mixin_1 = require("./create-many-controller.mixin");
|
|
23
|
-
function provideServiceName(entityName) {
|
|
24
|
-
return `CreateMany${entityName}Service`;
|
|
23
|
+
function provideServiceName(entityName, version) {
|
|
24
|
+
return `CreateMany${entityName}${version ? 'V' + version : ''}Service`;
|
|
25
25
|
}
|
|
26
|
-
function createCreateManyServiceProvider(entity) {
|
|
26
|
+
function createCreateManyServiceProvider(entity, version) {
|
|
27
27
|
let CreateManyService = class CreateManyService extends base_create_many_service_1.BaseCreateManyService {
|
|
28
28
|
constructor(model) {
|
|
29
29
|
super(model);
|
|
@@ -36,11 +36,11 @@ function createCreateManyServiceProvider(entity) {
|
|
|
36
36
|
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
37
37
|
], CreateManyService);
|
|
38
38
|
Object.defineProperty(CreateManyService, '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: CreateManyService,
|
|
45
45
|
};
|
|
46
46
|
}
|
|
@@ -56,11 +56,11 @@ function createCreateManyController(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
|
], CreateManyController);
|
|
62
62
|
Object.defineProperty(CreateManyController, 'name', {
|
|
63
|
-
value: `CreateMany${entity.name}Controller`,
|
|
63
|
+
value: `CreateMany${entity.name}${version ? 'V' + version : ''}Controller`,
|
|
64
64
|
writable: false,
|
|
65
65
|
});
|
|
66
66
|
return CreateManyController;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DynamicModule, Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { ControllerOptions, RouteConfig } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
export declare class CreateManyModule {
|
|
5
|
-
static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, path
|
|
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.CreateManyModule = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const create_many_helper_1 = require("./create-many.helper");
|
|
13
13
|
let CreateManyModule = CreateManyModule_1 = class CreateManyModule {
|
|
14
|
-
static forFeature(databaseModule, entity, path, apiTag
|
|
14
|
+
static forFeature(databaseModule, entity, { path, apiTag }, { description, dTOs: DTOs }, version, validationPipeOptions) {
|
|
15
15
|
const controller = (0, create_many_helper_1.createCreateManyController)(entity, path, apiTag, version, description, DTOs, validationPipeOptions);
|
|
16
|
-
const ServiceProvider = (0, create_many_helper_1.createCreateManyServiceProvider)(entity);
|
|
16
|
+
const ServiceProvider = (0, create_many_helper_1.createCreateManyServiceProvider)(entity, version);
|
|
17
17
|
return {
|
|
18
18
|
module: CreateManyModule_1,
|
|
19
19
|
imports: [databaseModule],
|
|
@@ -18,13 +18,13 @@ const builders_1 = require("../../builders");
|
|
|
18
18
|
const helpers_1 = require("../../helpers");
|
|
19
19
|
const mixins_1 = require("../../mixins");
|
|
20
20
|
function CreateOneControllerMixin(entity, path, apiTag, version, description, DTOs) {
|
|
21
|
-
const displayedName = apiTag ?? entity.name;
|
|
21
|
+
const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
|
|
22
22
|
const { body: CustomBody, presenter: CustomPresenter } = DTOs ?? {};
|
|
23
23
|
class RouteBody extends (CustomBody ?? (0, mixins_1.EntityBodyMixin)(entity)) {
|
|
24
24
|
}
|
|
25
25
|
if (!CustomBody) {
|
|
26
26
|
Object.defineProperty(RouteBody, 'name', {
|
|
27
|
-
value: `CreateOne${displayedName}Dto`,
|
|
27
|
+
value: `CreateOne${displayedName}${version ? 'V' + version : ''}Dto`,
|
|
28
28
|
writable: false,
|
|
29
29
|
});
|
|
30
30
|
}
|
|
@@ -32,11 +32,11 @@ function CreateOneControllerMixin(entity, path, apiTag, version, description, DT
|
|
|
32
32
|
}
|
|
33
33
|
if (!CustomPresenter) {
|
|
34
34
|
Object.defineProperty(RoutePresenter, 'name', {
|
|
35
|
-
value: `${displayedName}Presenter`,
|
|
35
|
+
value: `${displayedName}${version ? 'V' + version : ''}Presenter`,
|
|
36
36
|
writable: false,
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('CreateOne', entity, description, undefined, undefined, RouteBody, RoutePresenter);
|
|
39
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('CreateOne', entity, version, description, undefined, undefined, RouteBody, RoutePresenter);
|
|
40
40
|
class BaseCreateOneController {
|
|
41
41
|
constructor(service) {
|
|
42
42
|
this.service = service;
|
|
@@ -54,7 +54,7 @@ function CreateOneControllerMixin(entity, path, apiTag, version, description, DT
|
|
|
54
54
|
__metadata("design:returntype", Promise)
|
|
55
55
|
], BaseCreateOneController.prototype, "createOne", null);
|
|
56
56
|
Object.defineProperty(BaseCreateOneController, 'name', {
|
|
57
|
-
value: `
|
|
57
|
+
value: `BaseCreateOne${entity.name}${version ? 'V' + version : ''}Controller`,
|
|
58
58
|
writable: false,
|
|
59
59
|
});
|
|
60
60
|
return BaseCreateOneController;
|
|
@@ -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 { CreateOneControllerConstructor } from './create-one-controller.interface';
|
|
5
|
-
declare function createCreateOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity
|
|
5
|
+
declare function createCreateOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): ServiceProvider;
|
|
6
6
|
declare function createCreateOneController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): CreateOneControllerConstructor<Entity>;
|
|
7
7
|
export { createCreateOneController, createCreateOneServiceProvider };
|
|
@@ -20,10 +20,10 @@ const mongoose_2 = require("mongoose");
|
|
|
20
20
|
const dynamic_api_module_1 = require("../../dynamic-api.module");
|
|
21
21
|
const base_create_one_service_1 = require("./base-create-one.service");
|
|
22
22
|
const create_one_controller_mixin_1 = require("./create-one-controller.mixin");
|
|
23
|
-
function provideServiceName(entityName) {
|
|
24
|
-
return `CreateOne${entityName}Service`;
|
|
23
|
+
function provideServiceName(entityName, version) {
|
|
24
|
+
return `CreateOne${entityName}${version ? 'V' + version : ''}Service`;
|
|
25
25
|
}
|
|
26
|
-
function createCreateOneServiceProvider(entity) {
|
|
26
|
+
function createCreateOneServiceProvider(entity, version) {
|
|
27
27
|
let CreateOneService = class CreateOneService extends base_create_one_service_1.BaseCreateOneService {
|
|
28
28
|
constructor(model) {
|
|
29
29
|
super(model);
|
|
@@ -36,11 +36,11 @@ function createCreateOneServiceProvider(entity) {
|
|
|
36
36
|
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
37
37
|
], CreateOneService);
|
|
38
38
|
Object.defineProperty(CreateOneService, '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: CreateOneService,
|
|
45
45
|
};
|
|
46
46
|
}
|
|
@@ -56,11 +56,11 @@ function createCreateOneController(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
|
], CreateOneController);
|
|
62
62
|
Object.defineProperty(CreateOneController, 'name', {
|
|
63
|
-
value: `CreateOne${entity.name}Controller`,
|
|
63
|
+
value: `CreateOne${entity.name}${version ? 'V' + version : ''}Controller`,
|
|
64
64
|
writable: false,
|
|
65
65
|
});
|
|
66
66
|
return CreateOneController;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DynamicModule, Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { ControllerOptions, RouteConfig } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
export declare class CreateOneModule {
|
|
5
|
-
static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, path
|
|
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.CreateOneModule = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const create_one_helper_1 = require("./create-one.helper");
|
|
13
13
|
let CreateOneModule = CreateOneModule_1 = class CreateOneModule {
|
|
14
|
-
static forFeature(databaseModule, entity, path, apiTag
|
|
14
|
+
static forFeature(databaseModule, entity, { path, apiTag }, { description, dTOs: DTOs }, version, validationPipeOptions) {
|
|
15
15
|
const controller = (0, create_one_helper_1.createCreateOneController)(entity, path, apiTag, version, description, DTOs, validationPipeOptions);
|
|
16
|
-
const ServiceProvider = (0, create_one_helper_1.createCreateOneServiceProvider)(entity);
|
|
16
|
+
const ServiceProvider = (0, create_one_helper_1.createCreateOneServiceProvider)(entity, version);
|
|
17
17
|
return {
|
|
18
18
|
module: CreateOneModule_1,
|
|
19
19
|
imports: [databaseModule],
|
|
@@ -19,13 +19,13 @@ const dtos_1 = require("../../dtos");
|
|
|
19
19
|
const helpers_1 = require("../../helpers");
|
|
20
20
|
const delete_one_presenter_1 = require("./delete-one.presenter");
|
|
21
21
|
function DeleteOneControllerMixin(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, 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: `DeleteOne${displayedName}Param`,
|
|
28
|
+
value: `DeleteOne${displayedName}${version ? 'V' + version : ''}Param`,
|
|
29
29
|
writable: false,
|
|
30
30
|
});
|
|
31
31
|
}
|
|
@@ -33,11 +33,11 @@ function DeleteOneControllerMixin(entity, path, apiTag, version, description, DT
|
|
|
33
33
|
}
|
|
34
34
|
if (!CustomPresenter) {
|
|
35
35
|
Object.defineProperty(RoutePresenter, 'name', {
|
|
36
|
-
value: `DeleteOne${displayedName}Presenter`,
|
|
36
|
+
value: `DeleteOne${displayedName}${version ? 'V' + version : ''}Presenter`,
|
|
37
37
|
writable: false,
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
-
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('DeleteOne', entity, description, RouteParam, undefined, undefined, RoutePresenter);
|
|
40
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('DeleteOne', entity, version, description, RouteParam, undefined, undefined, RoutePresenter);
|
|
41
41
|
class BaseDeleteOneController {
|
|
42
42
|
constructor(service) {
|
|
43
43
|
this.service = service;
|
|
@@ -55,7 +55,7 @@ function DeleteOneControllerMixin(entity, path, apiTag, version, description, DT
|
|
|
55
55
|
__metadata("design:returntype", Promise)
|
|
56
56
|
], BaseDeleteOneController.prototype, "deleteOne", null);
|
|
57
57
|
Object.defineProperty(BaseDeleteOneController, 'name', {
|
|
58
|
-
value: `
|
|
58
|
+
value: `BaseDeleteOne${entity.name}${version ? 'V' + version : ''}Controller`,
|
|
59
59
|
writable: false,
|
|
60
60
|
});
|
|
61
61
|
return BaseDeleteOneController;
|
|
@@ -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 { DeleteOneControllerConstructor } from './delete-one-controller.interface';
|
|
5
|
-
declare function createDeleteOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity
|
|
5
|
+
declare function createDeleteOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): ServiceProvider;
|
|
6
6
|
declare function createDeleteOneController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): DeleteOneControllerConstructor<Entity>;
|
|
7
7
|
export { createDeleteOneController, createDeleteOneServiceProvider };
|
|
@@ -20,10 +20,10 @@ const mongoose_2 = require("mongoose");
|
|
|
20
20
|
const dynamic_api_module_1 = require("../../dynamic-api.module");
|
|
21
21
|
const base_delete_one_service_1 = require("./base-delete-one.service");
|
|
22
22
|
const delete_one_controller_mixin_1 = require("./delete-one-controller.mixin");
|
|
23
|
-
function provideServiceName(entityName) {
|
|
24
|
-
return `DeleteOne${entityName}Service`;
|
|
23
|
+
function provideServiceName(entityName, version) {
|
|
24
|
+
return `DeleteOne${entityName}${version ? 'V' + version : ''}Service`;
|
|
25
25
|
}
|
|
26
|
-
function createDeleteOneServiceProvider(entity) {
|
|
26
|
+
function createDeleteOneServiceProvider(entity, version) {
|
|
27
27
|
let DeleteOneService = class DeleteOneService extends base_delete_one_service_1.BaseDeleteOneService {
|
|
28
28
|
constructor(model) {
|
|
29
29
|
super(model);
|
|
@@ -36,11 +36,11 @@ function createDeleteOneServiceProvider(entity) {
|
|
|
36
36
|
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
37
37
|
], DeleteOneService);
|
|
38
38
|
Object.defineProperty(DeleteOneService, '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: DeleteOneService,
|
|
45
45
|
};
|
|
46
46
|
}
|
|
@@ -56,11 +56,11 @@ function createDeleteOneController(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
|
], DeleteOneController);
|
|
62
62
|
Object.defineProperty(DeleteOneController, 'name', {
|
|
63
|
-
value: `DeleteOne${entity.name}Controller`,
|
|
63
|
+
value: `DeleteOne${entity.name}${version ? 'V' + version : ''}Controller`,
|
|
64
64
|
writable: false,
|
|
65
65
|
});
|
|
66
66
|
return DeleteOneController;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DynamicModule, Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { ControllerOptions, RouteConfig } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
export declare class DeleteOneModule {
|
|
5
|
-
static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, path
|
|
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.DeleteOneModule = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const delete_one_helper_1 = require("./delete-one.helper");
|
|
13
13
|
let DeleteOneModule = DeleteOneModule_1 = class DeleteOneModule {
|
|
14
|
-
static forFeature(databaseModule, entity, path, apiTag
|
|
14
|
+
static forFeature(databaseModule, entity, { path, apiTag }, { description, dTOs: DTOs }, version, validationPipeOptions) {
|
|
15
15
|
const controller = (0, delete_one_helper_1.createDeleteOneController)(entity, path, apiTag, version, description, DTOs, validationPipeOptions);
|
|
16
|
-
const ServiceProvider = (0, delete_one_helper_1.createDeleteOneServiceProvider)(entity);
|
|
16
|
+
const ServiceProvider = (0, delete_one_helper_1.createDeleteOneServiceProvider)(entity, version);
|
|
17
17
|
return {
|
|
18
18
|
module: DeleteOneModule_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 DuplicateOneControllerMixin(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: `DuplicateOne${displayedName}Dto`,
|
|
28
|
+
value: `DuplicateOne${displayedName}${version ? 'V' + version : ''}Dto`,
|
|
29
29
|
writable: false,
|
|
30
30
|
});
|
|
31
31
|
}
|
|
@@ -33,7 +33,7 @@ function DuplicateOneControllerMixin(entity, path, apiTag, version, description,
|
|
|
33
33
|
}
|
|
34
34
|
if (!CustomParam) {
|
|
35
35
|
Object.defineProperty(RouteParam, 'name', {
|
|
36
|
-
value: `DuplicateOne${displayedName}Param`,
|
|
36
|
+
value: `DuplicateOne${displayedName}${version ? 'V' + version : ''}Param`,
|
|
37
37
|
writable: false,
|
|
38
38
|
});
|
|
39
39
|
}
|
|
@@ -41,11 +41,11 @@ function DuplicateOneControllerMixin(entity, path, apiTag, version, description,
|
|
|
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('DuplicateOne', entity, description, RouteParam, undefined, RouteBody, RoutePresenter);
|
|
48
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('DuplicateOne', entity, version, description, RouteParam, undefined, RouteBody, RoutePresenter);
|
|
49
49
|
class BaseDuplicateOneController {
|
|
50
50
|
constructor(service) {
|
|
51
51
|
this.service = service;
|
|
@@ -64,7 +64,7 @@ function DuplicateOneControllerMixin(entity, path, apiTag, version, description,
|
|
|
64
64
|
__metadata("design:returntype", Promise)
|
|
65
65
|
], BaseDuplicateOneController.prototype, "duplicateOne", null);
|
|
66
66
|
Object.defineProperty(BaseDuplicateOneController, 'name', {
|
|
67
|
-
value: `
|
|
67
|
+
value: `BaseDuplicateOne${entity.name}${version ? 'V' + version : ''}Controller`,
|
|
68
68
|
writable: false,
|
|
69
69
|
});
|
|
70
70
|
return BaseDuplicateOneController;
|
|
@@ -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 { DuplicateOneControllerConstructor } from './duplicate-one-controller.interface';
|
|
5
|
-
declare function createDuplicateOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity
|
|
5
|
+
declare function createDuplicateOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): ServiceProvider;
|
|
6
6
|
declare function createDuplicateOneController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): DuplicateOneControllerConstructor<Entity>;
|
|
7
7
|
export { createDuplicateOneController, createDuplicateOneServiceProvider };
|