@nest-omni/core 3.1.1 → 3.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/common/dto/dto-transformer.js +2 -2
- package/decorators/api-paginated-response.decorator.d.ts +2 -0
- package/decorators/api-paginated-response.decorator.js +9 -0
- package/decorators/index.d.ts +2 -0
- package/decorators/index.js +2 -0
- package/decorators/paginated-response.decorator.d.ts +11 -0
- package/decorators/paginated-response.decorator.js +60 -0
- package/package.json +1 -1
- package/setup/bootstrap.setup.js +28 -28
|
@@ -17,7 +17,7 @@ class DtoTransformer {
|
|
|
17
17
|
return __awaiter(this, void 0, void 0, function* () {
|
|
18
18
|
const services = yield dto_service_accessor_1.DtoServiceAccessor.getServicesForDto(dtoClass);
|
|
19
19
|
const options = {
|
|
20
|
-
excludeExtraneousValues:
|
|
20
|
+
excludeExtraneousValues: false,
|
|
21
21
|
exposeUnsetFields: true,
|
|
22
22
|
enableImplicitConversion: true,
|
|
23
23
|
enableCircularCheck: true,
|
|
@@ -34,7 +34,7 @@ class DtoTransformer {
|
|
|
34
34
|
}
|
|
35
35
|
const services = yield dto_service_accessor_1.DtoServiceAccessor.getServicesForDto(dtoClass);
|
|
36
36
|
const options = {
|
|
37
|
-
excludeExtraneousValues:
|
|
37
|
+
excludeExtraneousValues: false,
|
|
38
38
|
exposeUnsetFields: true,
|
|
39
39
|
enableImplicitConversion: true,
|
|
40
40
|
enableCircularCheck: true,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiPaginatedResponse = ApiPaginatedResponse;
|
|
4
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
5
|
+
const paginated_response_decorator_1 = require("./paginated-response.decorator");
|
|
6
|
+
function ApiPaginatedResponse(entityClass, options) {
|
|
7
|
+
const ResponseDto = (0, paginated_response_decorator_1.createPaginatedResponseDto)(entityClass);
|
|
8
|
+
return (0, swagger_1.ApiResponse)(Object.assign(Object.assign({}, options), { type: ResponseDto }));
|
|
9
|
+
}
|
package/decorators/index.d.ts
CHANGED
|
@@ -10,3 +10,5 @@ export * from './translate.decorator';
|
|
|
10
10
|
export * from './use-dto.decorator';
|
|
11
11
|
export * from './validator.decorators';
|
|
12
12
|
export * from './controller.decorator';
|
|
13
|
+
export * from './api-paginated-response.decorator';
|
|
14
|
+
export * from './paginated-response.decorator';
|
package/decorators/index.js
CHANGED
|
@@ -26,3 +26,5 @@ __exportStar(require("./translate.decorator"), exports);
|
|
|
26
26
|
__exportStar(require("./use-dto.decorator"), exports);
|
|
27
27
|
__exportStar(require("./validator.decorators"), exports);
|
|
28
28
|
__exportStar(require("./controller.decorator"), exports);
|
|
29
|
+
__exportStar(require("./api-paginated-response.decorator"), exports);
|
|
30
|
+
__exportStar(require("./paginated-response.decorator"), exports);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function createPaginatedResponseDto<T extends new (...args: any[]) => any>(entityClass: T): {
|
|
2
|
+
new (): {
|
|
3
|
+
data: InstanceType<T>[];
|
|
4
|
+
count?: number;
|
|
5
|
+
total?: number;
|
|
6
|
+
page?: number;
|
|
7
|
+
pageCount?: number;
|
|
8
|
+
hasPreviousPage?: boolean;
|
|
9
|
+
hasNextPage?: boolean;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.createPaginatedResponseDto = createPaginatedResponseDto;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
function createPaginatedResponseDto(entityClass) {
|
|
16
|
+
const entityName = entityClass.name.replace('Dto', '');
|
|
17
|
+
class PaginatedResponse {
|
|
18
|
+
}
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, swagger_1.ApiProperty)({
|
|
21
|
+
type: entityClass,
|
|
22
|
+
isArray: true,
|
|
23
|
+
description: `${entityName} data`,
|
|
24
|
+
}),
|
|
25
|
+
(0, class_transformer_1.Type)(() => entityClass),
|
|
26
|
+
__metadata("design:type", Array)
|
|
27
|
+
], PaginatedResponse.prototype, "data", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
30
|
+
example: 10,
|
|
31
|
+
description: 'Number of items in current page',
|
|
32
|
+
}),
|
|
33
|
+
__metadata("design:type", Number)
|
|
34
|
+
], PaginatedResponse.prototype, "count", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 100, description: 'Total number of items' }),
|
|
37
|
+
__metadata("design:type", Number)
|
|
38
|
+
], PaginatedResponse.prototype, "total", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 1, description: 'Current page number' }),
|
|
41
|
+
__metadata("design:type", Number)
|
|
42
|
+
], PaginatedResponse.prototype, "page", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 10, description: 'Total number of pages' }),
|
|
45
|
+
__metadata("design:type", Number)
|
|
46
|
+
], PaginatedResponse.prototype, "pageCount", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, swagger_1.ApiPropertyOptional)({ example: false, description: 'Has previous page' }),
|
|
49
|
+
__metadata("design:type", Boolean)
|
|
50
|
+
], PaginatedResponse.prototype, "hasPreviousPage", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, swagger_1.ApiPropertyOptional)({ example: true, description: 'Has next page' }),
|
|
53
|
+
__metadata("design:type", Boolean)
|
|
54
|
+
], PaginatedResponse.prototype, "hasNextPage", void 0);
|
|
55
|
+
Object.defineProperty(PaginatedResponse, 'name', {
|
|
56
|
+
value: `${entityName}PaginatedResponseDto`,
|
|
57
|
+
writable: false,
|
|
58
|
+
});
|
|
59
|
+
return PaginatedResponse;
|
|
60
|
+
}
|
package/package.json
CHANGED
package/setup/bootstrap.setup.js
CHANGED
|
@@ -10,6 +10,34 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.bootstrapSetup = bootstrapSetup;
|
|
13
|
+
const crud_1 = require("@dataui/crud");
|
|
14
|
+
crud_1.CrudConfigService.load({
|
|
15
|
+
auth: {
|
|
16
|
+
property: 'user',
|
|
17
|
+
},
|
|
18
|
+
params: {
|
|
19
|
+
id: {
|
|
20
|
+
field: 'id',
|
|
21
|
+
type: 'string',
|
|
22
|
+
primary: true,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
query: {
|
|
26
|
+
limit: 10,
|
|
27
|
+
alwaysPaginate: true,
|
|
28
|
+
},
|
|
29
|
+
routes: {
|
|
30
|
+
updateOneBase: {
|
|
31
|
+
allowParamsOverride: false,
|
|
32
|
+
},
|
|
33
|
+
deleteOneBase: {
|
|
34
|
+
returnDeleted: false,
|
|
35
|
+
},
|
|
36
|
+
createOneBase: {
|
|
37
|
+
returnShallow: false,
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
});
|
|
13
41
|
const Sentry = require("@sentry/nestjs");
|
|
14
42
|
const profiling_node_1 = require("@sentry/profiling-node");
|
|
15
43
|
const dotenv = require("dotenv");
|
|
@@ -78,34 +106,6 @@ Sentry.init({
|
|
|
78
106
|
sendDefaultPii: true,
|
|
79
107
|
integrations: [profiling_node_1.nodeProfilingIntegration],
|
|
80
108
|
});
|
|
81
|
-
const crud_1 = require("@dataui/crud");
|
|
82
|
-
crud_1.CrudConfigService.load({
|
|
83
|
-
auth: {
|
|
84
|
-
property: 'user',
|
|
85
|
-
},
|
|
86
|
-
params: {
|
|
87
|
-
id: {
|
|
88
|
-
field: 'id',
|
|
89
|
-
type: 'string',
|
|
90
|
-
primary: true,
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
query: {
|
|
94
|
-
limit: 10,
|
|
95
|
-
alwaysPaginate: true,
|
|
96
|
-
},
|
|
97
|
-
routes: {
|
|
98
|
-
updateOneBase: {
|
|
99
|
-
allowParamsOverride: false,
|
|
100
|
-
},
|
|
101
|
-
deleteOneBase: {
|
|
102
|
-
returnDeleted: false,
|
|
103
|
-
},
|
|
104
|
-
createOneBase: {
|
|
105
|
-
returnShallow: false,
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
});
|
|
109
109
|
const core_1 = require("@nestjs/core");
|
|
110
110
|
const nestjs_pino_1 = require("nestjs-pino");
|
|
111
111
|
const session = require("express-session");
|