@decaf-ts/db-decorators 0.8.3 → 0.8.5
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 +1 -1
- package/dist/db-decorators.cjs +1 -1
- package/dist/db-decorators.cjs.map +1 -1
- package/dist/db-decorators.js +1 -1
- package/dist/db-decorators.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/model/constants.d.ts +1 -0
- package/lib/esm/model/constants.js +1 -0
- package/lib/esm/model/constants.js.map +1 -1
- package/lib/esm/model/decorators.d.ts +2 -1
- package/lib/esm/model/decorators.js +16 -4
- package/lib/esm/model/decorators.js.map +1 -1
- package/lib/esm/model/index.d.ts +1 -1
- package/lib/esm/model/index.js +1 -1
- package/lib/esm/model/index.js.map +1 -1
- package/lib/esm/model/validation.js +28 -20
- package/lib/esm/model/validation.js.map +1 -1
- package/lib/esm/overrides/Model.d.ts +3 -0
- package/lib/esm/overrides/overrides.js +12 -4
- package/lib/esm/overrides/overrides.js.map +1 -1
- package/lib/esm/repository/constants.js +1 -0
- package/lib/esm/repository/constants.js.map +1 -1
- package/lib/esm/repository/types.d.ts +1 -0
- package/lib/esm/validation/decorators.js +2 -0
- package/lib/esm/validation/decorators.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/model/constants.cjs +1 -0
- package/lib/model/constants.d.ts +1 -0
- package/lib/model/constants.js.map +1 -1
- package/lib/model/decorators.cjs +15 -2
- package/lib/model/decorators.d.ts +2 -1
- package/lib/model/decorators.js.map +1 -1
- package/lib/model/index.cjs +1 -1
- package/lib/model/index.d.ts +1 -1
- package/lib/model/index.js.map +1 -1
- package/lib/model/validation.cjs +27 -19
- package/lib/model/validation.js.map +1 -1
- package/lib/overrides/Model.d.ts +3 -0
- package/lib/overrides/overrides.cjs +12 -4
- package/lib/overrides/overrides.js.map +1 -1
- package/lib/repository/constants.cjs +1 -0
- package/lib/repository/constants.js.map +1 -1
- package/lib/repository/types.d.ts +1 -0
- package/lib/validation/decorators.cjs +2 -0
- package/lib/validation/decorators.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ import { DBOperations, OperationKeys } from "./../operations/constants.js";
|
|
|
6
6
|
import { after, on, onCreateUpdate } from "./../operations/decorators.js";
|
|
7
7
|
import { SerializationError } from "./../repository/errors.js";
|
|
8
8
|
import { Decoration, propMetadata, apply, metadata, } from "@decaf-ts/decoration";
|
|
9
|
+
import { generated } from "./../model/decorators.js";
|
|
9
10
|
/**
|
|
10
11
|
* @description Prevents a property from being modified after initial creation.
|
|
11
12
|
* @summary Marks the property as readonly, causing validation errors if attempts are made to modify it during updates.
|
|
@@ -98,6 +99,7 @@ export function timestamp(operation = DBOperations.CREATE_UPDATE, format = DEFAU
|
|
|
98
99
|
const updateValidationKey = Validation.updateKey(DBKeys.TIMESTAMP);
|
|
99
100
|
function ts(operation, format) {
|
|
100
101
|
const decorators = [
|
|
102
|
+
generated(DBKeys.TIMESTAMP),
|
|
101
103
|
date(format, DEFAULT_ERROR_MESSAGES.TIMESTAMP.DATE),
|
|
102
104
|
required(DEFAULT_ERROR_MESSAGES.TIMESTAMP.REQUIRED),
|
|
103
105
|
propMetadata(Validation.key(DBKeys.TIMESTAMP), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/validation/decorators.ts"],"names":[],"mappings":"AAAA,yBAAsB;AACtB,OAAO,EACL,IAAI,EACJ,wBAAwB,EAExB,QAAQ,EACR,IAAI,EACJ,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,gCAA2B;AACtE,OAAO,EAAE,sBAAsB,EAAE,uBAAoB;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,qCAAgC;AACtE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,sCAAiC;AAErE,OAAO,EAAE,kBAAkB,EAAE,kCAA6B;AAC1D,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/validation/decorators.ts"],"names":[],"mappings":"AAAA,yBAAsB;AACtB,OAAO,EACL,IAAI,EACJ,wBAAwB,EAExB,QAAQ,EACR,IAAI,EACJ,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,gCAA2B;AACtE,OAAO,EAAE,sBAAsB,EAAE,uBAAoB;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,qCAAgC;AACtE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,sCAAiC;AAErE,OAAO,EAAE,kBAAkB,EAAE,kCAA6B;AAC1D,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,iCAA4B;AAEhD;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CACtB,UAAkB,sBAAsB,CAAC,QAAQ,CAAC,OAAO;IAEzD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC5B,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,KAAK;KACb,CAAC;IACF,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;SACvB,MAAM,CAAC;QACN,SAAS,EAAE,wBAAwB;QACnC,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC;KAC5B,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAMpC,OAA+B,EAC/B,IAAO,EACP,GAAY,EACZ,KAAQ;IAEP,KAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,SAAS,CACvB,YAA6B,YAAY,CAAC,aAA2C,EACrF,SAAiB,wBAAwB;IAEzC,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC;IACvC,MAAM,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEnE,SAAS,EAAE,CAAC,SAA0B,EAAE,MAAc;QACpD,MAAM,UAAU,GAAU;YACxB,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;YAC3B,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC;YACnD,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC;YACnD,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;gBAC7C,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,MAAM;aACf,CAAC;YACF,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;SAChC,CAAC;QACF,IAAI,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CACb,YAAY,CAAC,mBAAmB,EAAE;gBAChC,OAAO,EAAE,sBAAsB,CAAC,SAAS,CAAC,OAAO;aAClD,CAAC,CACH,CAAC;;YACC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;SACjC,MAAM,CAAC;QACN,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;KAC1B,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAM3C,OAA+B,EAC/B,IAAO,EACP,GAAY,EACZ,KAAQ;IAER,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO;IACxB,IAAI,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAe,CAAC;QACtD,6DAA6D;IAC/D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAC1B,uBAAuB,GAAG,CAAC,QAAQ,EAAE,sBAAsB,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CACvF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAMrC,OAA+B,EAC/B,IAAO,EACP,GAAY,EACZ,KAAQ;IAER,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO;IACxB,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ;QAAE,OAAO;IAE3C,IAAI,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAC1B,yBAAyB,GAAG,CAAC,QAAQ,EAAE,sBAAsB,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CACV,cAAc,CAAC,uBAAuB,CAAC,EACvC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAC1C,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtB,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAC/B,CAAC;AACJ,CAAC"}
|
package/lib/index.cjs
CHANGED
|
@@ -34,7 +34,7 @@ __exportStar(require("./validation/index.cjs"), exports);
|
|
|
34
34
|
* @const VERSION
|
|
35
35
|
* @memberOf module:db-decorators
|
|
36
36
|
*/
|
|
37
|
-
exports.VERSION = "0.8.
|
|
37
|
+
exports.VERSION = "0.8.5";
|
|
38
38
|
exports.PACKAGE_NAME = "@decaf-ts/db-decorators";
|
|
39
39
|
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
40
40
|
//# sourceMappingURL=index.js.map
|
package/lib/index.d.ts
CHANGED
package/lib/model/constants.cjs
CHANGED
package/lib/model/constants.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/model/constants.ts"],"names":[],"mappings":";;;AAAA,yEAA2D;AAE3D;;;;;GAKG;AACU,QAAA,MAAM,GAAG;IACpB,OAAO,EAAE,GAAG,gCAAS,CAAC,KAAK,eAAe;IAC1C,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,QAAQ;IACf,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,eAAe;CAC1B,CAAC;AAEF;;;;;GAKG;AACU,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAEpC;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/model/constants.ts"],"names":[],"mappings":";;;AAAA,yEAA2D;AAE3D;;;;;GAKG;AACU,QAAA,MAAM,GAAG;IACpB,OAAO,EAAE,GAAG,gCAAS,CAAC,KAAK,eAAe;IAC1C,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,QAAQ;IACf,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,eAAe;CAC1B,CAAC;AAEF;;;;;GAKG;AACU,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAEpC;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG,uBAAuB,CAAC"}
|
package/lib/model/decorators.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generated = generated;
|
|
3
4
|
exports.hashOnCreateUpdate = hashOnCreateUpdate;
|
|
4
5
|
exports.hash = hash;
|
|
5
6
|
exports.composedFromCreateUpdate = composedFromCreateUpdate;
|
|
@@ -14,6 +15,11 @@ const decorators_1 = require("./../operations/decorators.cjs");
|
|
|
14
15
|
const errors_1 = require("./../repository/errors.cjs");
|
|
15
16
|
const operations_1 = require("./../operations/index.cjs");
|
|
16
17
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
18
|
+
function generated(type) {
|
|
19
|
+
return function generated(target, prop) {
|
|
20
|
+
return (0, decoration_1.propMetadata)(decoration_1.Metadata.key(constants_1.DBKeys.GENERATED, prop), type || true)(target, prop);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
17
23
|
/**
|
|
18
24
|
* @description Hashes a property value during create or update operations
|
|
19
25
|
* @summary Callback function used by the hash decorator to apply hashing to a property value
|
|
@@ -130,6 +136,7 @@ function composedFrom(args, hashResult = false, separator = constants_1.DefaultS
|
|
|
130
136
|
filterEmpty: filterEmpty,
|
|
131
137
|
};
|
|
132
138
|
const decorators = [
|
|
139
|
+
generated(constants_1.DBKeys.COMPOSED),
|
|
133
140
|
(0, decorators_1.onCreateUpdate)(composedFromCreateUpdate, data, groupsort),
|
|
134
141
|
(0, decoration_1.propMetadata)(decoration_1.Metadata.key(constants_1.DBKeys.COMPOSED, property), data),
|
|
135
142
|
];
|
|
@@ -208,13 +215,19 @@ function composed(args, separator = constants_1.DefaultSeparator, filterEmpty =
|
|
|
208
215
|
* versionCreateUpdate-->>Caller: void
|
|
209
216
|
*/
|
|
210
217
|
function versionCreateUpdate(operation) {
|
|
211
|
-
return function versionCreateUpdate(context, data, key, model) {
|
|
218
|
+
return function versionCreateUpdate(context, data, key, model, oldModel) {
|
|
219
|
+
if (!decorator_validation_1.Model.shouldGenerate(model, key, context))
|
|
220
|
+
return;
|
|
212
221
|
try {
|
|
213
222
|
switch (operation) {
|
|
214
223
|
case operations_1.OperationKeys.CREATE:
|
|
215
224
|
model[key] = 1;
|
|
216
225
|
break;
|
|
217
226
|
case operations_1.OperationKeys.UPDATE:
|
|
227
|
+
if (context.get("applyUpdateValidation") &&
|
|
228
|
+
oldModel &&
|
|
229
|
+
model[key] !== oldModel[key])
|
|
230
|
+
throw new errors_1.ValidationError(`Version mismatch: ${model[key]} !== ${oldModel[key]}`);
|
|
218
231
|
model[key]++;
|
|
219
232
|
break;
|
|
220
233
|
default:
|
|
@@ -236,7 +249,7 @@ function versionCreateUpdate(operation) {
|
|
|
236
249
|
function version() {
|
|
237
250
|
const key = constants_1.DBKeys.VERSION;
|
|
238
251
|
return decoration_1.Decoration.for(key)
|
|
239
|
-
.define((0, decorator_validation_1.type)(Number), (0, decorators_1.onCreate)(versionCreateUpdate(operations_1.OperationKeys.CREATE)), (0, decorators_1.onUpdate)(versionCreateUpdate(operations_1.OperationKeys.UPDATE)), (0, decoration_1.propMetadata)(key, true))
|
|
252
|
+
.define(generated(constants_1.DBKeys.VERSION), (0, decorator_validation_1.type)(Number), (0, decorators_1.onCreate)(versionCreateUpdate(operations_1.OperationKeys.CREATE)), (0, decorators_1.onUpdate)(versionCreateUpdate(operations_1.OperationKeys.UPDATE)), (0, decoration_1.propMetadata)(key, true))
|
|
240
253
|
.apply();
|
|
241
254
|
}
|
|
242
255
|
/**
|
|
@@ -2,6 +2,7 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
2
2
|
import { IRepository } from "../interfaces/IRepository";
|
|
3
3
|
import { CrudOperations, GroupSort } from "../operations";
|
|
4
4
|
import { ContextOfRepository } from "../repository/index";
|
|
5
|
+
export declare function generated(type?: string): (target: object, prop?: any) => void;
|
|
5
6
|
/**
|
|
6
7
|
* @description Hashes a property value during create or update operations
|
|
7
8
|
* @summary Callback function used by the hash decorator to apply hashing to a property value
|
|
@@ -124,7 +125,7 @@ export declare function composed(args: string[], separator?: string, filterEmpty
|
|
|
124
125
|
* end
|
|
125
126
|
* versionCreateUpdate-->>Caller: void
|
|
126
127
|
*/
|
|
127
|
-
export declare function versionCreateUpdate(operation: CrudOperations): <M extends Model, R extends IRepository<M>, V extends object>(this: R, context: ContextOfRepository<R>, data: V, key: keyof M, model: M) => void;
|
|
128
|
+
export declare function versionCreateUpdate(operation: CrudOperations): <M extends Model, R extends IRepository<M>, V extends object>(this: R, context: ContextOfRepository<R>, data: V, key: keyof M, model: M, oldModel?: M) => void;
|
|
128
129
|
/**
|
|
129
130
|
* @description Creates a decorator for versioning a property in a model
|
|
130
131
|
* @summary This decorator applies multiple sub-decorators to handle version management during create and update operations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/model/decorators.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/model/decorators.ts"],"names":[],"mappings":"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"}
|
package/lib/model/index.cjs
CHANGED
|
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./validation.cjs"), exports);
|
|
18
17
|
__exportStar(require("./constants.cjs"), exports);
|
|
19
18
|
__exportStar(require("./decorators.cjs"), exports);
|
|
20
19
|
__exportStar(require("./model.cjs"), exports);
|
|
20
|
+
__exportStar(require("./validation.cjs"), exports);
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
package/lib/model/index.d.ts
CHANGED
package/lib/model/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,mDAA6B;AAC7B,8CAAwB;AACxB,mDAA6B"}
|
package/lib/model/validation.cjs
CHANGED
|
@@ -89,12 +89,12 @@ function validateDecorators(newModel, oldModel, prop, decorators, async) {
|
|
|
89
89
|
return String(t).toLowerCase();
|
|
90
90
|
});
|
|
91
91
|
const errs = newValues.map((childValue) => {
|
|
92
|
-
// find by id so the list elements order doesn't matter
|
|
93
|
-
const id = decorator_validation_1.Model.pk(childValue, true);
|
|
94
|
-
if (!id)
|
|
95
|
-
return "Failed to find model id";
|
|
96
|
-
const oldListModel = oldValues.find((el) => id === decorator_validation_1.Model.pk(el, true));
|
|
97
92
|
if (decorator_validation_1.Model.isModel(childValue)) {
|
|
93
|
+
// find by id so the list elements order doesn't matter
|
|
94
|
+
const id = decorator_validation_1.Model.pk(childValue, true);
|
|
95
|
+
if (!id)
|
|
96
|
+
return "Failed to find model id";
|
|
97
|
+
const oldListModel = oldValues.find((el) => id === decorator_validation_1.Model.pk(el, true));
|
|
98
98
|
return childValue.hasErrors(oldListModel);
|
|
99
99
|
}
|
|
100
100
|
return allowedTypes.includes(typeof childValue)
|
|
@@ -169,7 +169,7 @@ function validateCompare(oldModel, newModel, async, ...propsToIgnore) {
|
|
|
169
169
|
for (const { prop, decorators } of ValidatableUpdateProps) {
|
|
170
170
|
const propKey = String(prop);
|
|
171
171
|
const propValue = newModel[prop];
|
|
172
|
-
const { designTypes
|
|
172
|
+
const { designTypes } = decoration_1.Metadata.getPropDesignTypes(newModel.constructor, prop);
|
|
173
173
|
if (!designTypes)
|
|
174
174
|
continue;
|
|
175
175
|
// Handle array or Set types and enforce the presence of @list decorator
|
|
@@ -192,27 +192,35 @@ function validateCompare(oldModel, newModel, async, ...propsToIgnore) {
|
|
|
192
192
|
// TODO: Check validateDecorators method partially working. Complete check pending.
|
|
193
193
|
const propErrors = validateDecorators(newModel, oldModel, propKey, decorators, async) || {};
|
|
194
194
|
// Check for nested model.
|
|
195
|
-
// To prevent unnecessary processing, "propValue" must be defined
|
|
195
|
+
// To prevent unnecessary processing, "propValue" must be defined
|
|
196
196
|
const isConstr = decorator_validation_1.Model.isPropertyModel(newModel, propKey);
|
|
197
197
|
const hasPropValue = propValue !== null && propValue !== undefined;
|
|
198
198
|
if (hasPropValue && isConstr) {
|
|
199
199
|
const instance = propValue;
|
|
200
|
-
const Constr =
|
|
201
|
-
.map((d) =>
|
|
202
|
-
if (typeof d === "function" && !d.name)
|
|
203
|
-
d = d();
|
|
204
|
-
return decorator_validation_1.Model.get(d.name || d);
|
|
205
|
-
})
|
|
200
|
+
const Constr = designTypes
|
|
201
|
+
.map((d) => decorator_validation_1.Model.get(d.name || d))
|
|
206
202
|
.find((d) => !!d);
|
|
203
|
+
const designTypeNames = designTypes.map((d) => {
|
|
204
|
+
if (typeof d === "function")
|
|
205
|
+
return d.name ? d.name.toLowerCase() : d()?.name.toLowerCase();
|
|
206
|
+
return d.toLowerCase();
|
|
207
|
+
});
|
|
207
208
|
// Ensure instance is of the expected model class.
|
|
208
|
-
if (!Constr || !(
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
209
|
+
if (!Constr || !(propValue instanceof Constr)) {
|
|
210
|
+
if (designTypeNames.includes(typeof propValue)) {
|
|
211
|
+
// do nothing
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
// If types don't match throw an error
|
|
215
|
+
propErrors[decorator_validation_1.ValidationKeys.TYPE] = !Constr
|
|
216
|
+
? `Unable to verify type consistency, missing model registry for ${designTypes.toString()} on prop ${propKey}`
|
|
217
|
+
: `Value must be an instance of ${Constr.name}`;
|
|
218
|
+
delete propErrors[decorator_validation_1.ModelKeys.TYPE]; // remove duplicate type error
|
|
219
|
+
}
|
|
213
220
|
}
|
|
214
221
|
else {
|
|
215
|
-
|
|
222
|
+
const nestedPropsToIgnore = (0, decorator_validation_1.getChildNestedPropsToIgnore)(propKey, ...propsToIgnore);
|
|
223
|
+
nestedErrors[propKey] = instance.hasErrors(oldModel[prop], ...nestedPropsToIgnore);
|
|
216
224
|
}
|
|
217
225
|
}
|
|
218
226
|
// Add to the result if we have any errors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":"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"}
|
package/lib/overrides/Model.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Constructor } from "@decaf-ts/decoration";
|
|
2
2
|
import "@decaf-ts/decorator-validation";
|
|
3
3
|
import { ComposedFromMetadata } from "../model/index";
|
|
4
|
+
import { Context } from "../repository/index";
|
|
4
5
|
declare module "@decaf-ts/decorator-validation" {
|
|
5
6
|
interface Model {
|
|
6
7
|
isTransient(): boolean;
|
|
@@ -75,5 +76,7 @@ declare module "@decaf-ts/decorator-validation" {
|
|
|
75
76
|
function composed<M extends Model<boolean>>(model: Constructor<M>): boolean;
|
|
76
77
|
function composed<M extends Model<boolean>>(model: Constructor<M> | M, prop: keyof M): ComposedFromMetadata | undefined;
|
|
77
78
|
function composed<M extends Model<boolean>>(model: Constructor<M> | M, prop?: keyof M): boolean | ComposedFromMetadata | undefined;
|
|
79
|
+
function generated<M extends Model>(model: M | Constructor<M>, prop: keyof M): boolean | string;
|
|
80
|
+
function shouldGenerate<M extends Model>(model: M, prop: keyof M, ctx: Context<any>): boolean;
|
|
78
81
|
}
|
|
79
82
|
}
|
|
@@ -70,7 +70,7 @@ decorator_validation_1.Model.segregate = function segregate(model) {
|
|
|
70
70
|
result.model = decorator_validation_1.Model.build(result.model, model.constructor.name);
|
|
71
71
|
return result;
|
|
72
72
|
};
|
|
73
|
-
decorator_validation_1.Model.pk = function (model, keyValue = false) {
|
|
73
|
+
decorator_validation_1.Model.pk = function pk(model, keyValue = false) {
|
|
74
74
|
if (!model)
|
|
75
75
|
throw new Error("No model was provided");
|
|
76
76
|
const constr = model instanceof decorator_validation_1.Model ? model.constructor : model;
|
|
@@ -85,7 +85,7 @@ decorator_validation_1.Model.pk = function (model, keyValue = false) {
|
|
|
85
85
|
return model[key];
|
|
86
86
|
throw new Error("Cannot get the value of the pk from the constructor");
|
|
87
87
|
}.bind(decorator_validation_1.Model);
|
|
88
|
-
decorator_validation_1.Model.pkProps = function (model) {
|
|
88
|
+
decorator_validation_1.Model.pkProps = function pkProps(model) {
|
|
89
89
|
return decoration_1.Metadata.get(model, decoration_1.Metadata.key(constants_1.DBKeys.ID, decorator_validation_1.Model.pk(model)));
|
|
90
90
|
}.bind(decorator_validation_1.Model);
|
|
91
91
|
decorator_validation_1.Model.isTransient = function isTransient(model) {
|
|
@@ -115,12 +115,12 @@ decorator_validation_1.Model.merge = function merge(oldModel, newModel, construc
|
|
|
115
115
|
}, {});
|
|
116
116
|
return new constructor(Object.assign({}, extract(oldModel), extract(newModel)));
|
|
117
117
|
}.bind(decorator_validation_1.Model);
|
|
118
|
-
decoration_1.Metadata.saveOperation = function (model, propertyKey, operation, metadata) {
|
|
118
|
+
decoration_1.Metadata.saveOperation = function saveOperation(model, propertyKey, operation, metadata) {
|
|
119
119
|
if (!propertyKey)
|
|
120
120
|
return;
|
|
121
121
|
decoration_1.Metadata.set(model, decoration_1.Metadata.key(constants_2.ModelOperations.OPERATIONS, propertyKey, operation), metadata);
|
|
122
122
|
}.bind(decoration_1.Metadata);
|
|
123
|
-
decoration_1.Metadata.readOperation = function (model, propertyKey, operation) {
|
|
123
|
+
decoration_1.Metadata.readOperation = function readOperation(model, propertyKey, operation) {
|
|
124
124
|
if (!propertyKey || !operation)
|
|
125
125
|
return;
|
|
126
126
|
return decoration_1.Metadata.get(model, decoration_1.Metadata.key(constants_2.ModelOperations.OPERATIONS, propertyKey, operation));
|
|
@@ -128,4 +128,12 @@ decoration_1.Metadata.readOperation = function (model, propertyKey, operation) {
|
|
|
128
128
|
decoration_1.Metadata.isTransient = function isTransient(model) {
|
|
129
129
|
return !!decoration_1.Metadata.get(typeof model !== "function" ? model.constructor : model, constants_1.DBKeys.TRANSIENT);
|
|
130
130
|
}.bind(decoration_1.Metadata);
|
|
131
|
+
decorator_validation_1.Model.generated = function generated(model, prop) {
|
|
132
|
+
return !!decoration_1.Metadata.get(typeof model !== "function" ? model.constructor : model, decoration_1.Metadata.key(constants_1.DBKeys.GENERATED, prop));
|
|
133
|
+
}.bind(decorator_validation_1.Model);
|
|
134
|
+
decorator_validation_1.Model.shouldGenerate = function shouldGenerate(model, prop, ctx) {
|
|
135
|
+
return (!decorator_validation_1.Model.generated(model, prop) &&
|
|
136
|
+
!ctx.get("allowGenerationOverride") &&
|
|
137
|
+
typeof model[prop] !== "undefined");
|
|
138
|
+
}.bind(decorator_validation_1.Model);
|
|
131
139
|
//# sourceMappingURL=overrides.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/overrides/overrides.ts"],"names":[],"mappings":";;AAAA,yEAIwC;AACxC,0DAAsD;AACtD,qDAA6D;AAC7D,wDAA4C;AAC5C,6DAA0D;AAC1D,uDAA0D;
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/overrides/overrides.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/repository/constants.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACU,QAAA,sBAAsB,GAG/B;IACF,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,EAAE;IACjB,2BAA2B,EAAE,EAAE;IAC/B,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,EAAE;IAClB,SAAS,EAAE,SAAS;IACpB,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,KAAK;IACrB,mBAAmB,EAAE,KAAK;IAC1B,cAAc,EAAE,IAAI;IACpB,qBAAqB,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/repository/constants.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACU,QAAA,sBAAsB,GAG/B;IACF,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,EAAE;IACjB,2BAA2B,EAAE,EAAE;IAC/B,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,EAAE;IAClB,SAAS,EAAE,SAAS;IACpB,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,KAAK;IACrB,mBAAmB,EAAE,KAAK;IAC1B,cAAc,EAAE,IAAI;IACpB,qBAAqB,EAAE,IAAI;IAC3B,uBAAuB,EAAE,KAAK;CAC/B,CAAC"}
|
|
@@ -48,6 +48,7 @@ export interface RepositoryFlags<LOG extends Logger = Logger> {
|
|
|
48
48
|
applyUpdateValidation: boolean;
|
|
49
49
|
logger: LOG;
|
|
50
50
|
correlationId?: string;
|
|
51
|
+
allowGenerationOverride: boolean;
|
|
51
52
|
}
|
|
52
53
|
export type LoggerOfFlags<R extends RepositoryFlags<any>> = R extends RepositoryFlags<infer L> ? L : never;
|
|
53
54
|
export type FlagsOfContext<C extends Context<any>> = C extends Context<infer F> ? F : never;
|
|
@@ -14,6 +14,7 @@ const constants_3 = require("./../operations/constants.cjs");
|
|
|
14
14
|
const decorators_1 = require("./../operations/decorators.cjs");
|
|
15
15
|
const errors_1 = require("./../repository/errors.cjs");
|
|
16
16
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
17
|
+
const decorators_2 = require("./../model/decorators.cjs");
|
|
17
18
|
/**
|
|
18
19
|
* @description Prevents a property from being modified after initial creation.
|
|
19
20
|
* @summary Marks the property as readonly, causing validation errors if attempts are made to modify it during updates.
|
|
@@ -106,6 +107,7 @@ function timestamp(operation = constants_3.DBOperations.CREATE_UPDATE, format =
|
|
|
106
107
|
const updateValidationKey = decorator_validation_1.Validation.updateKey(constants_1.DBKeys.TIMESTAMP);
|
|
107
108
|
function ts(operation, format) {
|
|
108
109
|
const decorators = [
|
|
110
|
+
(0, decorators_2.generated)(constants_1.DBKeys.TIMESTAMP),
|
|
109
111
|
(0, decorator_validation_1.date)(format, constants_2.DEFAULT_ERROR_MESSAGES.TIMESTAMP.DATE),
|
|
110
112
|
(0, decorator_validation_1.required)(constants_2.DEFAULT_ERROR_MESSAGES.TIMESTAMP.REQUIRED),
|
|
111
113
|
(0, decoration_1.propMetadata)(decorator_validation_1.Validation.key(constants_1.DBKeys.TIMESTAMP), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/validation/decorators.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/validation/decorators.ts"],"names":[],"mappings":"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"}
|