@hichchi/nest-crud 0.0.2 → 0.0.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/CHANGELOG.md +36 -12
- package/README.md +2475 -2085
- package/base/base-entity-extension.js +10 -6
- package/base/base-entity-extension.js.map +1 -1
- package/base/base-entity.js +47 -43
- package/base/base-entity.js.map +1 -1
- package/base/base-repository.js +16 -12
- package/base/base-repository.js.map +1 -1
- package/base/base-user.entity.js +85 -81
- package/base/base-user.entity.js.map +1 -1
- package/base/index.js +7 -4
- package/base/index.js.map +1 -1
- package/constants.js +10 -7
- package/constants.js.map +1 -1
- package/crud.module.js +29 -26
- package/crud.module.js.map +1 -1
- package/decorators/entity-extension.decorator.js +20 -17
- package/decorators/entity-extension.decorator.js.map +1 -1
- package/decorators/entity.decorator.js +30 -27
- package/decorators/entity.decorator.js.map +1 -1
- package/decorators/filter.decorator.js +8 -5
- package/decorators/filter.decorator.js.map +1 -1
- package/decorators/index.js +11 -8
- package/decorators/index.js.map +1 -1
- package/decorators/join-column.decorator.js +11 -8
- package/decorators/join-column.decorator.js.map +1 -1
- package/decorators/page.decorator.js +8 -5
- package/decorators/page.decorator.js.map +1 -1
- package/decorators/repository.decorator.js +14 -11
- package/decorators/repository.decorator.js.map +1 -1
- package/decorators/search.decorator.js +8 -5
- package/decorators/search.decorator.js.map +1 -1
- package/decorators/sort.decorator.js +8 -5
- package/decorators/sort.decorator.js.map +1 -1
- package/dtos/bulk-delete.dto.js +15 -12
- package/dtos/bulk-delete.dto.js.map +1 -1
- package/dtos/bulk-update.dto.js +18 -15
- package/dtos/bulk-update.dto.js.map +1 -1
- package/dtos/ids.dto.js +15 -12
- package/dtos/ids.dto.js.map +1 -1
- package/dtos/index.js +5 -2
- package/dtos/index.js.map +1 -1
- package/enums/crud.enums.js +7 -4
- package/enums/crud.enums.js.map +1 -1
- package/enums/index.js +4 -1
- package/enums/index.js.map +1 -1
- package/enums/metadata-keys.enum.js +5 -2
- package/enums/metadata-keys.enum.js.map +1 -1
- package/exceptions/index.js +4 -1
- package/exceptions/index.js.map +1 -1
- package/exceptions/typeorm.exception.js +9 -4
- package/exceptions/typeorm.exception.js.map +1 -1
- package/index.js +19 -12
- package/index.js.map +1 -1
- package/interfaces/connection-options.interface.js +2 -1
- package/interfaces/crud-options.interfaces.js +2 -1
- package/interfaces/index.js +5 -2
- package/interfaces/index.js.map +1 -1
- package/package.json +7 -6
- package/readme-top.md +1 -5
- package/responses/crud.error.responses.js +31 -28
- package/responses/crud.error.responses.js.map +1 -1
- package/responses/crud.success.responses.js +24 -21
- package/responses/crud.success.responses.js.map +1 -1
- package/responses/index.js +5 -2
- package/responses/index.js.map +1 -1
- package/services/crud.service.js +43 -39
- package/services/crud.service.js.map +1 -1
- package/services/index.js +4 -1
- package/services/index.js.map +1 -1
- package/tokens.js +5 -2
- package/tokens.js.map +1 -1
- package/types/database.types.d.ts +1 -1
- package/types/database.types.js +2 -1
- package/types/decorator.types.js +2 -1
- package/types/decorator.types.js.map +1 -1
- package/types/entity-option-unique.js +2 -1
- package/types/error-handler.type.js +2 -1
- package/types/filter-options.type.js +2 -1
- package/types/find-conditions.type.js +2 -1
- package/types/index.js +11 -8
- package/types/index.js.map +1 -1
- package/types/repository-decorator.type.js +2 -1
- package/types/sort-options.type.js +2 -1
- package/utils/entity.utils.js +46 -42
- package/utils/entity.utils.js.map +1 -1
- package/utils/http.utils.js +11 -6
- package/utils/http.utils.js.map +1 -1
- package/utils/index.js +5 -2
- package/utils/index.js.map +1 -1
- package/utils/repository.utils.js +12 -7
- package/utils/repository.utils.js.map +1 -1
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Sorter = Sorter;
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
4
7
|
/**
|
|
5
8
|
* Sort parameter decorator
|
|
6
9
|
*
|
|
@@ -84,10 +87,10 @@ import { parseSortOptions } from "../utils";
|
|
|
84
87
|
* @see {@link Filters} Related decorator for extracting filter parameters
|
|
85
88
|
* @see {@link Pager} Related decorator for extracting pagination parameters
|
|
86
89
|
*/
|
|
87
|
-
|
|
88
|
-
return createParamDecorator((_data, ctx) => {
|
|
90
|
+
function Sorter() {
|
|
91
|
+
return (0, common_1.createParamDecorator)((_data, ctx) => {
|
|
89
92
|
const req = ctx.switchToHttp().getRequest();
|
|
90
|
-
return typeof req.query?.sort === "string" ? parseSortOptions(req.query.sort) : undefined;
|
|
93
|
+
return typeof req.query?.sort === "string" ? (0, utils_1.parseSortOptions)(req.query.sort) : undefined;
|
|
91
94
|
})();
|
|
92
95
|
}
|
|
93
96
|
//# sourceMappingURL=sort.decorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.decorator.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/decorators/sort.decorator.ts"],"names":[],"mappings":"AAAA,qCAAqC;
|
|
1
|
+
{"version":3,"file":"sort.decorator.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/decorators/sort.decorator.ts"],"names":[],"mappings":";AAAA,qCAAqC;;AAyFrC,wBAKC;AA5FD,2CAAwE;AAExE,oCAA4C;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AACH,SAAgB,MAAM;IAClB,OAAO,IAAA,6BAAoB,EAAC,CAAC,KAAc,EAAE,GAAqB,EAA2B,EAAE;QAC3F,MAAM,GAAG,GAAiC,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAC1E,OAAO,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9F,CAAC,CAAC,EAAE,CAAC;AACT,CAAC"}
|
package/dtos/bulk-delete.dto.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.BulkDeleteDto = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const class_validator_1 = require("class-validator");
|
|
7
|
+
const nest_core_1 = require("@hichchi/nest-core");
|
|
8
|
+
const nest_connector_1 = require("@hichchi/nest-connector");
|
|
6
9
|
/**
|
|
7
10
|
* Data Transfer Object for bulk deletion operations
|
|
8
11
|
*
|
|
@@ -53,14 +56,14 @@ let BulkDeleteDto = class BulkDeleteDto {
|
|
|
53
56
|
*/
|
|
54
57
|
ids;
|
|
55
58
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
exports.BulkDeleteDto = BulkDeleteDto;
|
|
60
|
+
tslib_1.__decorate([
|
|
61
|
+
(0, class_validator_1.IsUUID)(nest_connector_1.DEFAULT_UUID_VERSION, { each: true }),
|
|
62
|
+
(0, class_validator_1.IsArray)(),
|
|
63
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
64
|
+
tslib_1.__metadata("design:type", Array)
|
|
61
65
|
], BulkDeleteDto.prototype, "ids", void 0);
|
|
62
|
-
BulkDeleteDto = __decorate([
|
|
63
|
-
Dto()
|
|
66
|
+
exports.BulkDeleteDto = BulkDeleteDto = tslib_1.__decorate([
|
|
67
|
+
(0, nest_core_1.Dto)()
|
|
64
68
|
], BulkDeleteDto);
|
|
65
|
-
export { BulkDeleteDto };
|
|
66
69
|
//# sourceMappingURL=bulk-delete.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-delete.dto.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/dtos/bulk-delete.dto.ts"],"names":[],"mappings":"AAAA,qCAAqC
|
|
1
|
+
{"version":3,"file":"bulk-delete.dto.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/dtos/bulk-delete.dto.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;AAErC,qDAA8D;AAE9D,kDAAyC;AAEzC,4DAA+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAa;IACtB;;;;;;;;;;;OAWG;IAKH,GAAG,CAAa;CACnB,CAAA;AAlBY,sCAAa;AAiBtB;IAHC,IAAA,wBAAM,EAAC,qCAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;0CACG;wBAjBP,aAAa;IADzB,IAAA,eAAG,GAAE;GACO,aAAa,CAkBzB"}
|
package/dtos/bulk-update.dto.js
CHANGED
|
@@ -1,24 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.BulkUpdateDto = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const class_validator_1 = require("class-validator");
|
|
7
|
+
const nest_core_1 = require("@hichchi/nest-core");
|
|
8
|
+
const nest_connector_1 = require("@hichchi/nest-connector");
|
|
6
9
|
let BulkUpdateDto = class BulkUpdateDto {
|
|
7
10
|
ids;
|
|
8
11
|
dto;
|
|
9
12
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
exports.BulkUpdateDto = BulkUpdateDto;
|
|
14
|
+
tslib_1.__decorate([
|
|
15
|
+
(0, class_validator_1.IsUUID)(nest_connector_1.DEFAULT_UUID_VERSION, { each: true }),
|
|
16
|
+
(0, class_validator_1.IsArray)(),
|
|
17
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
18
|
+
tslib_1.__metadata("design:type", Array)
|
|
15
19
|
], BulkUpdateDto.prototype, "ids", void 0);
|
|
16
|
-
__decorate([
|
|
17
|
-
IsNotEmpty(),
|
|
18
|
-
__metadata("design:type", Object)
|
|
20
|
+
tslib_1.__decorate([
|
|
21
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
22
|
+
tslib_1.__metadata("design:type", Object)
|
|
19
23
|
], BulkUpdateDto.prototype, "dto", void 0);
|
|
20
|
-
BulkUpdateDto = __decorate([
|
|
21
|
-
Dto()
|
|
24
|
+
exports.BulkUpdateDto = BulkUpdateDto = tslib_1.__decorate([
|
|
25
|
+
(0, nest_core_1.Dto)()
|
|
22
26
|
], BulkUpdateDto);
|
|
23
|
-
export { BulkUpdateDto };
|
|
24
27
|
//# sourceMappingURL=bulk-update.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-update.dto.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/dtos/bulk-update.dto.ts"],"names":[],"mappings":"AAAA,qCAAqC
|
|
1
|
+
{"version":3,"file":"bulk-update.dto.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/dtos/bulk-update.dto.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;AAErC,qDAA8D;AAE9D,kDAAyC;AAEzC,4DAA+D;AAGxD,IAAM,aAAa,GAAnB,MAAM,aAAa;IAItB,GAAG,CAAa;IAGhB,GAAG,CAA4B;CAClC,CAAA;AARY,sCAAa;AAItB;IAHC,IAAA,wBAAM,EAAC,qCAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;0CACG;AAGhB;IADC,IAAA,4BAAU,GAAE;;0CACkB;wBAPtB,aAAa;IADzB,IAAA,eAAG,GAAE;GACO,aAAa,CAQzB"}
|
package/dtos/ids.dto.js
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.IdsDto = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const class_validator_1 = require("class-validator");
|
|
7
|
+
const nest_core_1 = require("@hichchi/nest-core");
|
|
8
|
+
const nest_connector_1 = require("@hichchi/nest-connector");
|
|
6
9
|
let IdsDto = class IdsDto {
|
|
7
10
|
ids;
|
|
8
11
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
exports.IdsDto = IdsDto;
|
|
13
|
+
tslib_1.__decorate([
|
|
14
|
+
(0, class_validator_1.IsUUID)(nest_connector_1.DEFAULT_UUID_VERSION, { each: true }),
|
|
15
|
+
(0, class_validator_1.IsArray)(),
|
|
16
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
17
|
+
tslib_1.__metadata("design:type", Array)
|
|
14
18
|
], IdsDto.prototype, "ids", void 0);
|
|
15
|
-
IdsDto = __decorate([
|
|
16
|
-
Dto()
|
|
19
|
+
exports.IdsDto = IdsDto = tslib_1.__decorate([
|
|
20
|
+
(0, nest_core_1.Dto)()
|
|
17
21
|
], IdsDto);
|
|
18
|
-
export { IdsDto };
|
|
19
22
|
//# sourceMappingURL=ids.dto.js.map
|
package/dtos/ids.dto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.dto.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/dtos/ids.dto.ts"],"names":[],"mappings":"AAAA,qCAAqC
|
|
1
|
+
{"version":3,"file":"ids.dto.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/dtos/ids.dto.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;AAErC,qDAA8D;AAE9D,kDAAyC;AAEzC,4DAA+D;AAGxD,IAAM,MAAM,GAAZ,MAAM,MAAM;IAIf,GAAG,CAAa;CACnB,CAAA;AALY,wBAAM;AAIf;IAHC,IAAA,wBAAM,EAAC,qCAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;mCACG;iBAJP,MAAM;IADlB,IAAA,eAAG,GAAE;GACO,MAAM,CAKlB"}
|
package/dtos/index.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./bulk-delete.dto"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./ids.dto"), exports);
|
|
3
6
|
//# sourceMappingURL=index.js.map
|
package/dtos/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/dtos/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/dtos/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,oDAA0B"}
|
package/enums/crud.enums.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Operation = exports.TypeORMErrorType = void 0;
|
|
1
4
|
/**
|
|
2
5
|
* TypeORM Database Error Types
|
|
3
6
|
*
|
|
@@ -10,7 +13,7 @@
|
|
|
10
13
|
* more precise error handling logic and provide more meaningful error messages
|
|
11
14
|
* to clients, rather than exposing raw database errors.
|
|
12
15
|
*/
|
|
13
|
-
|
|
16
|
+
var TypeORMErrorType;
|
|
14
17
|
(function (TypeORMErrorType) {
|
|
15
18
|
/**
|
|
16
19
|
* Error when trying to insert a row without providing a value for a field that
|
|
@@ -32,7 +35,7 @@ export var TypeORMErrorType;
|
|
|
32
35
|
* often caused by typos in column names or outdated queries after schema changes.
|
|
33
36
|
*/
|
|
34
37
|
TypeORMErrorType["ER_BAD_FIELD_ERROR"] = "ER_BAD_FIELD_ERROR";
|
|
35
|
-
})(TypeORMErrorType || (TypeORMErrorType = {}));
|
|
38
|
+
})(TypeORMErrorType || (exports.TypeORMErrorType = TypeORMErrorType = {}));
|
|
36
39
|
/**
|
|
37
40
|
* CRUD Operations Enum
|
|
38
41
|
*
|
|
@@ -44,7 +47,7 @@ export var TypeORMErrorType;
|
|
|
44
47
|
* operation-specific behaviors such as validation rules or triggers that vary
|
|
45
48
|
* depending on whether an entity is being created, updated, or deleted.
|
|
46
49
|
*/
|
|
47
|
-
|
|
50
|
+
var Operation;
|
|
48
51
|
(function (Operation) {
|
|
49
52
|
/**
|
|
50
53
|
* Create operation
|
|
@@ -78,5 +81,5 @@ export var Operation;
|
|
|
78
81
|
* enforce referential integrity constraints, depending on the configuration.
|
|
79
82
|
*/
|
|
80
83
|
Operation["DELETE"] = "DELETE";
|
|
81
|
-
})(Operation || (Operation = {}));
|
|
84
|
+
})(Operation || (exports.Operation = Operation = {}));
|
|
82
85
|
//# sourceMappingURL=crud.enums.js.map
|
package/enums/crud.enums.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.enums.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/enums/crud.enums.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,
|
|
1
|
+
{"version":3,"file":"crud.enums.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/enums/crud.enums.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;GAWG;AACH,IAAY,gBAwBX;AAxBD,WAAY,gBAAgB;IACxB;;;OAGG;IACH,uEAAmD,CAAA;IAEnD;;;OAGG;IACH,iDAA6B,CAAA;IAE7B;;;OAGG;IACH,qEAAiD,CAAA;IAEjD;;;OAGG;IACH,6DAAyC,CAAA;AAC7C,CAAC,EAxBW,gBAAgB,gCAAhB,gBAAgB,QAwB3B;AAED;;;;;;;;;;GAUG;AACH,IAAY,SAoCX;AApCD,WAAY,SAAS;IACjB;;;;;;OAMG;IACH,8BAAiB,CAAA;IAEjB;;;;;;OAMG;IACH,8BAAiB,CAAA;IAEjB;;;;;;OAMG;IACH,0BAAa,CAAA;IAEb;;;;;;OAMG;IACH,8BAAiB,CAAA;AACrB,CAAC,EApCW,SAAS,yBAAT,SAAS,QAoCpB"}
|
package/enums/index.js
CHANGED
package/enums/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/enums/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/enums/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MetadataKeys = void 0;
|
|
1
4
|
/**
|
|
2
5
|
* Metadata Key Identifiers
|
|
3
6
|
*
|
|
@@ -9,7 +12,7 @@
|
|
|
9
12
|
* automatic validation, serialization/deserialization, relationship management, and other
|
|
10
13
|
* entity-related functionalities without requiring excessive boilerplate code.
|
|
11
14
|
*/
|
|
12
|
-
|
|
15
|
+
var MetadataKeys;
|
|
13
16
|
(function (MetadataKeys) {
|
|
14
17
|
/**
|
|
15
18
|
* Entity metadata key
|
|
@@ -34,5 +37,5 @@ export var MetadataKeys;
|
|
|
34
37
|
* The ORM uses this metadata to properly handle joins, cascades, and referential integrity.
|
|
35
38
|
*/
|
|
36
39
|
MetadataKeys["HICHCHI_FOREIGN_KEY"] = "hichchi-foreign-key";
|
|
37
|
-
})(MetadataKeys || (MetadataKeys = {}));
|
|
40
|
+
})(MetadataKeys || (exports.MetadataKeys = MetadataKeys = {}));
|
|
38
41
|
//# sourceMappingURL=metadata-keys.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-keys.enum.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/enums/metadata-keys.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,
|
|
1
|
+
{"version":3,"file":"metadata-keys.enum.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/enums/metadata-keys.enum.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,IAAY,YAyBX;AAzBD,WAAY,YAAY;IACpB;;;;;;;;;OASG;IACH,iDAAiC,CAAA;IAEjC;;;;;;;;;;OAUG;IACH,2DAA2C,CAAA;AAC/C,CAAC,EAzBW,YAAY,4BAAZ,YAAY,QAyBvB"}
|
package/exceptions/index.js
CHANGED
package/exceptions/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/exceptions/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/exceptions/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// noinspection JSUnusedGlobalSymbols
|
|
2
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.TypeormException = void 0;
|
|
5
|
+
exports.isTypeormException = isTypeormException;
|
|
6
|
+
const typeorm_1 = require("typeorm");
|
|
3
7
|
/**
|
|
4
8
|
* Exception for handling TypeORM database errors with enhanced details
|
|
5
9
|
*
|
|
@@ -48,7 +52,7 @@ import { TypeORMError } from "typeorm";
|
|
|
48
52
|
* @see {@link TypeORMErrorType} Enum of standardized database error types
|
|
49
53
|
* @see {@link TypeORMError} The base TypeORM error class this extends
|
|
50
54
|
*/
|
|
51
|
-
|
|
55
|
+
class TypeormException extends typeorm_1.TypeORMError {
|
|
52
56
|
/**
|
|
53
57
|
* The SQL query that caused the error
|
|
54
58
|
*
|
|
@@ -109,6 +113,7 @@ export class TypeormException extends TypeORMError {
|
|
|
109
113
|
*/
|
|
110
114
|
sql;
|
|
111
115
|
}
|
|
116
|
+
exports.TypeormException = TypeormException;
|
|
112
117
|
/**
|
|
113
118
|
* Type guard to check if an error is a TypeormException
|
|
114
119
|
*
|
|
@@ -140,7 +145,7 @@ export class TypeormException extends TypeORMError {
|
|
|
140
145
|
*
|
|
141
146
|
* @see {@link TypeormException} The exception class this function checks for
|
|
142
147
|
*/
|
|
143
|
-
|
|
144
|
-
return error instanceof TypeORMError && "sqlMessage" in error && "code" in error;
|
|
148
|
+
function isTypeormException(error) {
|
|
149
|
+
return error instanceof typeorm_1.TypeORMError && "sqlMessage" in error && "code" in error;
|
|
145
150
|
}
|
|
146
151
|
//# sourceMappingURL=typeorm.exception.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeorm.exception.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/exceptions/typeorm.exception.ts"],"names":[],"mappings":"AAAA,qCAAqC;
|
|
1
|
+
{"version":3,"file":"typeorm.exception.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/exceptions/typeorm.exception.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AA+JrC,gDAEC;AA9JD,qCAAuC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAa,gBAAiB,SAAQ,sBAAY;IAC9C;;;;;OAKG;IACH,KAAK,CAAS;IAEd;;;;;OAKG;IACH,UAAU,CAAW;IAErB;;;;;;OAMG;IACH,WAAW,CAMT;IAEF;;;;;;OAMG;IACH,IAAI,CAAmB;IAEvB;;;;;OAKG;IACH,KAAK,CAAS;IAEd;;;;;OAKG;IACH,QAAQ,CAAS;IAEjB;;;;;OAKG;IACH,UAAU,CAAS;IAEnB;;;;;;OAMG;IACH,GAAG,CAAS;CACf;AAzED,4CAyEC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAgB,kBAAkB,CAAC,KAAc;IAC7C,OAAO,KAAK,YAAY,sBAAY,IAAI,YAAY,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AACrF,CAAC"}
|
package/index.js
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HichchiCrudModule = exports.Repository = exports.InjectRepository = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
var typeorm_1 = require("@nestjs/typeorm");
|
|
6
|
+
Object.defineProperty(exports, "InjectRepository", { enumerable: true, get: function () { return typeorm_1.InjectRepository; } });
|
|
7
|
+
var typeorm_2 = require("typeorm");
|
|
8
|
+
Object.defineProperty(exports, "Repository", { enumerable: true, get: function () { return typeorm_2.Repository; } });
|
|
9
|
+
tslib_1.__exportStar(require("./base"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./decorators"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./dtos"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./enums"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./constants"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./services"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./interfaces"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./tokens"), exports);
|
|
17
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
18
|
+
var crud_module_1 = require("./crud.module");
|
|
19
|
+
Object.defineProperty(exports, "HichchiCrudModule", { enumerable: true, get: function () { return crud_module_1.HichchiCrudModule; } });
|
|
13
20
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/nest-crud/src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/nest-crud/src/index.ts"],"names":[],"mappings":";;;;AAAA,2CAAmD;AAA1C,2GAAA,gBAAgB,OAAA;AACzB,mCAAqC;AAA5B,qGAAA,UAAU,OAAA;AAEnB,iDAAuB;AACvB,uDAA6B;AAC7B,iDAAuB;AACvB,kDAAwB;AACxB,sDAA4B;AAC5B,qDAA2B;AAC3B,uDAA6B;AAC7B,mDAAyB;AACzB,kDAAwB;AACxB,6CAAkD;AAAzC,gHAAA,iBAAiB,OAAA"}
|
package/interfaces/index.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./crud-options.interfaces"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./connection-options.interface"), exports);
|
|
3
6
|
//# sourceMappingURL=index.js.map
|
package/interfaces/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,oEAA0C;AAC1C,yEAA+C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hichchi/nest-crud",
|
|
3
|
-
"
|
|
3
|
+
"description": "NestJS CRUD extension library that extends @hichchi/nest-core functionality with comprehensive TypeORM-based CRUD operations, BaseEntity classes, advanced repositories, query builders, audit trails, soft delete, and enterprise-grade features - cannot be used independently, requires nest-core as foundation",
|
|
4
|
+
"version": "0.0.4",
|
|
4
5
|
"publishConfig": {
|
|
5
6
|
"access": "public"
|
|
6
7
|
},
|
|
@@ -15,7 +16,7 @@
|
|
|
15
16
|
"main": "./index.js",
|
|
16
17
|
"typings": "./index.d.ts",
|
|
17
18
|
"dependencies": {
|
|
18
|
-
"@keyv/redis": "^
|
|
19
|
+
"@keyv/redis": "^5.1.6",
|
|
19
20
|
"@nestjs/axios": "^4.0.0",
|
|
20
21
|
"@nestjs/cache-manager": "^3.1.0",
|
|
21
22
|
"axios": "1.13.5",
|
|
@@ -28,15 +29,15 @@
|
|
|
28
29
|
"logform": "2.7.0",
|
|
29
30
|
"rxjs": "^7.8.2",
|
|
30
31
|
"triple-beam": "1.4.1",
|
|
31
|
-
"tslib": "^2.
|
|
32
|
+
"tslib": "^2.8.1",
|
|
32
33
|
"validator": "13.15.26",
|
|
33
34
|
"winston": "^3.17.0",
|
|
34
35
|
"winston-transport": "4.9.0"
|
|
35
36
|
},
|
|
36
37
|
"peerDependencies": {
|
|
37
|
-
"@hichchi/nest-connector": "0.0.
|
|
38
|
-
"@hichchi/nest-core": "0.0.
|
|
39
|
-
"@hichchi/utils": "0.0.
|
|
38
|
+
"@hichchi/nest-connector": "0.0.4",
|
|
39
|
+
"@hichchi/nest-core": "0.0.4",
|
|
40
|
+
"@hichchi/utils": "0.0.4",
|
|
40
41
|
"@nestjs/common": "^11.1.13",
|
|
41
42
|
"@nestjs/core": "^11.1.13",
|
|
42
43
|
"@nestjs/typeorm": "^11.0.0",
|
package/readme-top.md
CHANGED
|
@@ -159,7 +159,6 @@ import { UserModule } from './user/user.module';
|
|
|
159
159
|
// Database connection configuration
|
|
160
160
|
type: "mysql", // Database type (mysql, postgres, sqlite, etc.)
|
|
161
161
|
host: "localhost",
|
|
162
|
-
host: "localhost",
|
|
163
162
|
port: 3306,
|
|
164
163
|
username: "root",
|
|
165
164
|
password: "your-database-password", // Use environment variables in production
|
|
@@ -168,13 +167,10 @@ import { UserModule } from './user/user.module';
|
|
|
168
167
|
|
|
169
168
|
// Entity configuration
|
|
170
169
|
entities: ["dist/**/entities/*.entity{.ts,.js}"], // Path to your compiled entities
|
|
170
|
+
migrations: ["dist/database/migrations/*{.ts,.js}"], // Path to your migrations
|
|
171
171
|
synchronize: true, // Auto-create database schema (disable in production)
|
|
172
172
|
legacySpatialSupport: false,
|
|
173
173
|
autoLoadEntities: true, // Automatically load entities from modules
|
|
174
|
-
|
|
175
|
-
// Optional: Global CRUD configuration
|
|
176
|
-
logging: true, // Enable SQL query logging
|
|
177
|
-
dropSchema: false, // Never drop schema in production
|
|
178
174
|
}),
|
|
179
175
|
|
|
180
176
|
// Import your feature modules
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CrudErrorResponses = void 0;
|
|
4
|
+
const utils_1 = require("@hichchi/utils");
|
|
5
|
+
const nest_connector_1 = require("@hichchi/nest-connector");
|
|
3
6
|
/**
|
|
4
7
|
* Standardized error responses for CRUD operations
|
|
5
8
|
*
|
|
@@ -48,9 +51,9 @@ const CrudErrorResponses = {
|
|
|
48
51
|
* ```
|
|
49
52
|
*/
|
|
50
53
|
E_400_NO_DEFAULT: (entityName, field, description) => ({
|
|
51
|
-
statusCode:
|
|
52
|
-
code: `${toSnakeCase(entityName, true)}_${
|
|
53
|
-
message: `No default value for ${toLowerCaseBreak(entityName)} ${toLowerCaseBreak(field)}!`,
|
|
54
|
+
statusCode: nest_connector_1.HttpClientErrorStatus.BAD_REQUEST,
|
|
55
|
+
code: `${(0, utils_1.toSnakeCase)(entityName, true)}_${nest_connector_1.HttpClientErrorStatus.BAD_REQUEST}_NO_DEFAULT_${(0, utils_1.toSnakeCase)(field, true)}`,
|
|
56
|
+
message: `No default value for ${(0, utils_1.toLowerCaseBreak)(entityName)} ${(0, utils_1.toLowerCaseBreak)(field)}!`,
|
|
54
57
|
description,
|
|
55
58
|
}),
|
|
56
59
|
/**
|
|
@@ -73,9 +76,9 @@ const CrudErrorResponses = {
|
|
|
73
76
|
* ```
|
|
74
77
|
*/
|
|
75
78
|
E_400_INVALID_ID: (entityName, description) => ({
|
|
76
|
-
statusCode:
|
|
77
|
-
code: `${toSnakeCase(entityName, true)}_${
|
|
78
|
-
message: `Invalid ${toLowerCaseBreak(entityName)} id!, Id must be a UUID!`,
|
|
79
|
+
statusCode: nest_connector_1.HttpClientErrorStatus.BAD_REQUEST,
|
|
80
|
+
code: `${(0, utils_1.toSnakeCase)(entityName, true)}_${nest_connector_1.HttpClientErrorStatus.BAD_REQUEST}_INVALID_ID`,
|
|
81
|
+
message: `Invalid ${(0, utils_1.toLowerCaseBreak)(entityName)} id!, Id must be a UUID!`,
|
|
79
82
|
description,
|
|
80
83
|
}),
|
|
81
84
|
/**
|
|
@@ -105,9 +108,9 @@ const CrudErrorResponses = {
|
|
|
105
108
|
* ```
|
|
106
109
|
*/
|
|
107
110
|
E_400_QUERY: (entityName, field, description) => ({
|
|
108
|
-
statusCode:
|
|
109
|
-
code: `${toSnakeCase(entityName, true)}_${
|
|
110
|
-
message: `Cannot find ${field ? `field with name '${field}'` : "a field provided as a filter or search"} in ${toLowerCaseBreak(entityName)}!`,
|
|
111
|
+
statusCode: nest_connector_1.HttpClientErrorStatus.BAD_REQUEST,
|
|
112
|
+
code: `${(0, utils_1.toSnakeCase)(entityName, true)}_${nest_connector_1.HttpClientErrorStatus.BAD_REQUEST}_QUERY`,
|
|
113
|
+
message: `Cannot find ${field ? `field with name '${field}'` : "a field provided as a filter or search"} in ${(0, utils_1.toLowerCaseBreak)(entityName)}!`,
|
|
111
114
|
description,
|
|
112
115
|
}),
|
|
113
116
|
/**
|
|
@@ -132,9 +135,9 @@ const CrudErrorResponses = {
|
|
|
132
135
|
* ```
|
|
133
136
|
*/
|
|
134
137
|
E_404_ID: (entityName, description) => ({
|
|
135
|
-
statusCode:
|
|
136
|
-
code: `${toSnakeCase(entityName, true)}_${
|
|
137
|
-
message: `Cannot find a ${toLowerCaseBreak(entityName)} with given id!`,
|
|
138
|
+
statusCode: nest_connector_1.HttpClientErrorStatus.NOT_FOUND,
|
|
139
|
+
code: `${(0, utils_1.toSnakeCase)(entityName, true)}_${nest_connector_1.HttpClientErrorStatus.NOT_FOUND}_ID`,
|
|
140
|
+
message: `Cannot find a ${(0, utils_1.toLowerCaseBreak)(entityName)} with given id!`,
|
|
138
141
|
description,
|
|
139
142
|
}),
|
|
140
143
|
/**
|
|
@@ -165,8 +168,8 @@ const CrudErrorResponses = {
|
|
|
165
168
|
* ```
|
|
166
169
|
*/
|
|
167
170
|
E_404_RELATION: (entityName, relationName, description) => ({
|
|
168
|
-
statusCode:
|
|
169
|
-
code: `${toSnakeCase(entityName, true)}_${
|
|
171
|
+
statusCode: nest_connector_1.HttpClientErrorStatus.NOT_FOUND,
|
|
172
|
+
code: `${(0, utils_1.toSnakeCase)(entityName, true)}_${nest_connector_1.HttpClientErrorStatus.NOT_FOUND}_${relationName.toUpperCase()}_ID`,
|
|
170
173
|
description,
|
|
171
174
|
message: `Cannot find a ${relationName.toLowerCase()} with given id!`,
|
|
172
175
|
}),
|
|
@@ -192,9 +195,9 @@ const CrudErrorResponses = {
|
|
|
192
195
|
* ```
|
|
193
196
|
*/
|
|
194
197
|
E_404_CONDITION: (entityName, description) => ({
|
|
195
|
-
statusCode:
|
|
196
|
-
code: `${toSnakeCase(entityName, true)}_${
|
|
197
|
-
message: `Cannot find a ${toLowerCaseBreak(entityName)} with given condition!`,
|
|
198
|
+
statusCode: nest_connector_1.HttpClientErrorStatus.NOT_FOUND,
|
|
199
|
+
code: `${(0, utils_1.toSnakeCase)(entityName, true)}_${nest_connector_1.HttpClientErrorStatus.NOT_FOUND}_CONDITION`,
|
|
200
|
+
message: `Cannot find a ${(0, utils_1.toLowerCaseBreak)(entityName)} with given condition!`,
|
|
198
201
|
description,
|
|
199
202
|
}),
|
|
200
203
|
/**
|
|
@@ -225,9 +228,9 @@ const CrudErrorResponses = {
|
|
|
225
228
|
* ```
|
|
226
229
|
*/
|
|
227
230
|
E_409_EXIST_U: (entityName, unique, description) => ({
|
|
228
|
-
statusCode:
|
|
229
|
-
code: `${toSnakeCase(entityName, true)}_${
|
|
230
|
-
message: `${toSentenceCase(entityName)} with given ${unique.map(u => toLowerCaseBreak(u, " ")).join(" or ")} already exists!`,
|
|
231
|
+
statusCode: nest_connector_1.HttpClientErrorStatus.CONFLICT,
|
|
232
|
+
code: `${(0, utils_1.toSnakeCase)(entityName, true)}_${nest_connector_1.HttpClientErrorStatus.CONFLICT}_EXIST_${(0, utils_1.toSnakeCase)(unique.join("_"), true)}`,
|
|
233
|
+
message: `${(0, utils_1.toSentenceCase)(entityName)} with given ${unique.map(u => (0, utils_1.toLowerCaseBreak)(u, " ")).join(" or ")} already exists!`,
|
|
231
234
|
description,
|
|
232
235
|
}),
|
|
233
236
|
/**
|
|
@@ -257,9 +260,9 @@ const CrudErrorResponses = {
|
|
|
257
260
|
* @see {@link Operation} Enum of CRUD operations
|
|
258
261
|
*/
|
|
259
262
|
E_500_OPERATION: (entityName, operation, description) => ({
|
|
260
|
-
statusCode:
|
|
261
|
-
code: `${toSnakeCase(entityName, true)}_${
|
|
262
|
-
message: `Unexpected error occurred while ${toLowerCaseBreak(operation)} ${toLowerCaseBreak(entityName)}!`,
|
|
263
|
+
statusCode: nest_connector_1.HttpServerErrorStatus.INTERNAL_SERVER_ERROR,
|
|
264
|
+
code: `${(0, utils_1.toSnakeCase)(entityName, true)}_${nest_connector_1.HttpServerErrorStatus.INTERNAL_SERVER_ERROR}_${(0, utils_1.toSnakeCase)(operation, true)}`,
|
|
265
|
+
message: `Unexpected error occurred while ${(0, utils_1.toLowerCaseBreak)(operation)} ${(0, utils_1.toLowerCaseBreak)(entityName)}!`,
|
|
263
266
|
description,
|
|
264
267
|
}),
|
|
265
268
|
/**
|
|
@@ -285,11 +288,11 @@ const CrudErrorResponses = {
|
|
|
285
288
|
* ```
|
|
286
289
|
*/
|
|
287
290
|
E_500: (description) => ({
|
|
288
|
-
statusCode:
|
|
289
|
-
code: `E_${
|
|
291
|
+
statusCode: nest_connector_1.HttpServerErrorStatus.INTERNAL_SERVER_ERROR,
|
|
292
|
+
code: `E_${nest_connector_1.HttpServerErrorStatus.INTERNAL_SERVER_ERROR}_ERROR`,
|
|
290
293
|
message: "Unexpected error occurred!",
|
|
291
294
|
description,
|
|
292
295
|
}),
|
|
293
296
|
};
|
|
294
|
-
|
|
297
|
+
exports.CrudErrorResponses = CrudErrorResponses;
|
|
295
298
|
//# sourceMappingURL=crud.error.responses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.error.responses.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/responses/crud.error.responses.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"crud.error.responses.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/responses/crud.error.responses.ts"],"names":[],"mappings":"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"}
|