@zola_do/crud 0.2.3 → 0.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.
- package/README.md +99 -1
- package/dist/controller/entity-crud.controller.d.ts +2 -2
- package/dist/controller/entity-crud.controller.js +60 -10
- package/dist/controller/entity-crud.controller.js.map +1 -1
- package/dist/controller/extra-crud.controller.d.ts +2 -2
- package/dist/controller/extra-crud.controller.js +59 -9
- package/dist/controller/extra-crud.controller.js.map +1 -1
- package/dist/controller/relation-crud.controller.d.ts +2 -2
- package/dist/controller/relation-crud.controller.js +58 -8
- package/dist/controller/relation-crud.controller.js.map +1 -1
- package/dist/crud-operation/repository/entity-crud.repository.js +1 -2
- package/dist/crud-operation/repository/entity-crud.repository.js.map +1 -1
- package/dist/crud-operation/repository/extra-crud.repository.js +1 -2
- package/dist/crud-operation/repository/extra-crud.repository.js.map +1 -1
- package/dist/optional/rpc.d.ts +1 -0
- package/dist/optional/rpc.js +18 -0
- package/dist/optional/rpc.js.map +1 -0
- package/dist/repository/index.d.ts +1 -0
- package/dist/repository/index.js +18 -0
- package/dist/repository/index.js.map +1 -0
- package/dist/request-context/index.d.ts +1 -0
- package/dist/request-context/index.js +18 -0
- package/dist/request-context/index.js.map +1 -0
- package/dist/service/entity-crud.service.d.ts +3 -3
- package/dist/service/entity-crud.service.js +111 -33
- package/dist/service/entity-crud.service.js.map +1 -1
- package/dist/service/extra-crud.service.d.ts +2 -2
- package/dist/service/extra-crud.service.js +111 -38
- package/dist/service/extra-crud.service.js.map +1 -1
- package/dist/service/relation-crud.service.js +15 -1
- package/dist/service/relation-crud.service.js.map +1 -1
- package/dist/shared/api-data/api-paginated-response.js +24 -0
- package/dist/shared/api-data/api-paginated-response.js.map +1 -1
- package/dist/shared/api-data/data-response-format.d.ts +6 -0
- package/dist/shared/api-data/data-response-format.js +24 -0
- package/dist/shared/api-data/data-response-format.js.map +1 -1
- package/dist/shared/exceptions/index.d.ts +0 -1
- package/dist/shared/exceptions/index.js +0 -1
- package/dist/shared/exceptions/index.js.map +1 -1
- package/dist/shared/request-context/apply-create-context.helper.js +17 -4
- package/dist/shared/request-context/apply-create-context.helper.js.map +1 -1
- package/dist/shared/types/crud-option.type.d.ts +69 -12
- package/dist/shared/utils/crud-hooks.helper.d.ts +31 -2
- package/dist/shared/utils/crud-hooks.helper.js +172 -1
- package/dist/shared/utils/crud-hooks.helper.js.map +1 -1
- package/dist/shared/utils/cursor-query.helper.d.ts +6 -0
- package/dist/shared/utils/cursor-query.helper.js +49 -0
- package/dist/shared/utils/cursor-query.helper.js.map +1 -0
- package/dist/shared/utils/index.d.ts +1 -0
- package/dist/shared/utils/index.js +1 -0
- package/dist/shared/utils/index.js.map +1 -1
- package/package.json +30 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mergeCursorQueryParams = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const parseLimit = (limit) => {
|
|
6
|
+
if (limit === undefined || limit === null || limit === '') {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
const parsed = parseInt(limit, 10);
|
|
10
|
+
if (Number.isNaN(parsed) || parsed < 1) {
|
|
11
|
+
throw new common_1.BadRequestException('limit must be a positive integer');
|
|
12
|
+
}
|
|
13
|
+
return parsed;
|
|
14
|
+
};
|
|
15
|
+
const parseDirection = (direction) => {
|
|
16
|
+
if (!direction) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
if (direction === 'next' || direction === 'n') {
|
|
20
|
+
return 'n';
|
|
21
|
+
}
|
|
22
|
+
if (direction === 'prev' || direction === 'p') {
|
|
23
|
+
return 'p';
|
|
24
|
+
}
|
|
25
|
+
throw new common_1.BadRequestException('direction must be one of n, p, next, prev');
|
|
26
|
+
};
|
|
27
|
+
const mergeCursorQueryParams = (query, params) => {
|
|
28
|
+
const merged = Object.assign({}, query);
|
|
29
|
+
const hasPlainParams = params.cursor !== undefined ||
|
|
30
|
+
params.limit !== undefined ||
|
|
31
|
+
params.direction !== undefined;
|
|
32
|
+
if (params.cursor !== undefined) {
|
|
33
|
+
merged.cursor = params.cursor || undefined;
|
|
34
|
+
}
|
|
35
|
+
const parsedLimit = parseLimit(params.limit);
|
|
36
|
+
if (parsedLimit !== undefined) {
|
|
37
|
+
merged.take = parsedLimit;
|
|
38
|
+
}
|
|
39
|
+
const parsedDirection = parseDirection(params.direction);
|
|
40
|
+
if (parsedDirection !== undefined) {
|
|
41
|
+
merged.cursorDirection = parsedDirection;
|
|
42
|
+
}
|
|
43
|
+
if (hasPlainParams && !merged.cursorDirection) {
|
|
44
|
+
merged.cursorDirection = 'n';
|
|
45
|
+
}
|
|
46
|
+
return merged;
|
|
47
|
+
};
|
|
48
|
+
exports.mergeCursorQueryParams = mergeCursorQueryParams;
|
|
49
|
+
//# sourceMappingURL=cursor-query.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor-query.helper.js","sourceRoot":"","sources":["../../../src/shared/utils/cursor-query.helper.ts"],"names":[],"mappings":";;;AAAA,2CAAqD;AAQrD,MAAM,UAAU,GAAG,CAAC,KAAc,EAAsB,EAAE;IACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,4BAAmB,CAAC,kCAAkC,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,SAAkB,EACK,EAAE;IACzB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QAC9C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QAC9C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,IAAI,4BAAmB,CAAC,2CAA2C,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,CACpC,KAAsB,EACtB,MAIC,EACgB,EAAE;IACnB,MAAM,MAAM,qBACP,KAAK,CACT,CAAC;IAEF,MAAM,cAAc,GAClB,MAAM,CAAC,MAAM,KAAK,SAAS;QAC3B,MAAM,CAAC,KAAK,KAAK,SAAS;QAC1B,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC;IAEjC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC;IAC7C,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;IAC5B,CAAC;IAED,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IAED,IAAI,cAAc,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AApCW,QAAA,sBAAsB,0BAoCjC"}
|
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./numeric.transformer"), exports);
|
|
18
18
|
__exportStar(require("./validate-dto"), exports);
|
|
19
19
|
__exportStar(require("./crud-hooks.helper"), exports);
|
|
20
|
+
__exportStar(require("./cursor-query.helper"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,iDAA+B;AAC/B,sDAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,iDAA+B;AAC/B,sDAAoC;AACpC,wDAAsC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zola_do/crud",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Generic CRUD controllers and services for NestJS",
|
|
5
5
|
"author": "zolaDO",
|
|
6
6
|
"license": "ISC",
|
|
@@ -18,6 +18,31 @@
|
|
|
18
18
|
"types": "./dist/index.d.ts",
|
|
19
19
|
"require": "./dist/index.js",
|
|
20
20
|
"default": "./dist/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./controller": {
|
|
23
|
+
"types": "./dist/controller/index.d.ts",
|
|
24
|
+
"require": "./dist/controller/index.js",
|
|
25
|
+
"default": "./dist/controller/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./service": {
|
|
28
|
+
"types": "./dist/service/index.d.ts",
|
|
29
|
+
"require": "./dist/service/index.js",
|
|
30
|
+
"default": "./dist/service/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./repository": {
|
|
33
|
+
"types": "./dist/repository/index.d.ts",
|
|
34
|
+
"require": "./dist/repository/index.js",
|
|
35
|
+
"default": "./dist/repository/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./request-context": {
|
|
38
|
+
"types": "./dist/request-context/index.d.ts",
|
|
39
|
+
"require": "./dist/request-context/index.js",
|
|
40
|
+
"default": "./dist/request-context/index.js"
|
|
41
|
+
},
|
|
42
|
+
"./optional/rpc": {
|
|
43
|
+
"types": "./dist/optional/rpc.d.ts",
|
|
44
|
+
"require": "./dist/optional/rpc.js",
|
|
45
|
+
"default": "./dist/optional/rpc.js"
|
|
21
46
|
}
|
|
22
47
|
},
|
|
23
48
|
"files": [
|
|
@@ -32,6 +57,7 @@
|
|
|
32
57
|
},
|
|
33
58
|
"peerDependencies": {
|
|
34
59
|
"@nestjs/common": "^10.0.0 || ^11.0.0",
|
|
60
|
+
"@nestjs/microservices": "^10.0.0 || ^11.0.0",
|
|
35
61
|
"@nestjs/swagger": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0",
|
|
36
62
|
"@nestjs/typeorm": "^10.0.0 || ^11.0.0",
|
|
37
63
|
"class-validator": "^0.14.2 || ^0.15.1",
|
|
@@ -41,6 +67,9 @@
|
|
|
41
67
|
"typeorm-extension": "^3.7.1"
|
|
42
68
|
},
|
|
43
69
|
"peerDependenciesMeta": {
|
|
70
|
+
"@nestjs/microservices": {
|
|
71
|
+
"optional": true
|
|
72
|
+
},
|
|
44
73
|
"@nestjs/swagger": {
|
|
45
74
|
"optional": true
|
|
46
75
|
}
|