@my-devkit/core 1.0.99 → 1.0.101
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/dist/aggregate.d.ts +1 -1
- package/dist/aggregate.js +19 -24
- package/dist/aggregate.js.map +1 -1
- package/dist/command.d.ts +1 -1
- package/dist/command.js +8 -9
- package/dist/command.js.map +1 -1
- package/dist/date-helper.js +27 -33
- package/dist/date-helper.js.map +1 -1
- package/dist/decorators/cacheable.decorator.js +32 -95
- package/dist/decorators/cacheable.decorator.js.map +1 -1
- package/dist/decorators/index.js +5 -1
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/retryable.decorator.js +6 -45
- package/dist/decorators/retryable.decorator.js.map +1 -1
- package/dist/enum-helper.js +13 -31
- package/dist/enum-helper.js.map +1 -1
- package/dist/errors/bad-request-error.js +6 -24
- package/dist/errors/bad-request-error.js.map +1 -1
- package/dist/errors/domain-error.js +6 -24
- package/dist/errors/domain-error.js.map +1 -1
- package/dist/errors/forbidden-error.js +6 -24
- package/dist/errors/forbidden-error.js.map +1 -1
- package/dist/errors/index.js +5 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/not-found-error.js +6 -24
- package/dist/errors/not-found-error.js.map +1 -1
- package/dist/errors/not-implemented-error.js +6 -24
- package/dist/errors/not-implemented-error.js.map +1 -1
- package/dist/errors/unauthorized-error.js +6 -24
- package/dist/errors/unauthorized-error.js.map +1 -1
- package/dist/event.d.ts +7 -7
- package/dist/event.js +44 -53
- package/dist/event.js.map +1 -1
- package/dist/guid/index.js +1 -1
- package/dist/guid/index.js.map +1 -1
- package/dist/index.js +18 -2
- package/dist/index.js.map +1 -1
- package/dist/json-helper.d.ts +1 -0
- package/dist/json-helper.js +18 -12
- package/dist/json-helper.js.map +1 -1
- package/dist/logger.js +35 -57
- package/dist/logger.js.map +1 -1
- package/dist/maintenance-model.js +16 -34
- package/dist/maintenance-model.js.map +1 -1
- package/dist/model.d.ts +1 -1
- package/dist/model.js +11 -16
- package/dist/model.js.map +1 -1
- package/dist/passwords.js +1 -1
- package/dist/passwords.js.map +1 -1
- package/dist/promise-helper.js +25 -67
- package/dist/promise-helper.js.map +1 -1
- package/dist/release-model.js +16 -34
- package/dist/release-model.js.map +1 -1
- package/dist/retry.js +24 -76
- package/dist/retry.js.map +1 -1
- package/dist/sanity-check-warm-up-dto.js +11 -12
- package/dist/sanity-check-warm-up-dto.js.map +1 -1
- package/dist/serialize/deserialize.js +2 -2
- package/dist/serialize/deserialize.js.map +1 -1
- package/dist/serialize/index.d.ts +2 -1
- package/dist/serialize/index.js +7 -2
- package/dist/serialize/index.js.map +1 -1
- package/dist/serialize/serializable.d.ts +1 -1
- package/dist/serialize/serializable.js +5 -5
- package/dist/serialize/serializable.js.map +1 -1
- package/dist/serialize/serialize-helper.d.ts +5 -0
- package/dist/serialize/serialize-helper.js +38 -0
- package/dist/serialize/serialize-helper.js.map +1 -0
- package/dist/serialize/serialize.js +1 -1
- package/dist/serialize/serialize.js.map +1 -1
- package/dist/serialize/type-helper.js +62 -73
- package/dist/serialize/type-helper.js.map +1 -1
- package/dist/sleep.js +5 -34
- package/dist/sleep.js.map +1 -1
- package/dist/validators/custom-validators/camel-case.js +2 -2
- package/dist/validators/custom-validators/camel-case.js.map +1 -1
- package/dist/validators/custom-validators/equals-to.js +5 -5
- package/dist/validators/custom-validators/equals-to.js.map +1 -1
- package/dist/validators/custom-validators/greater-or-equal-than.js +5 -5
- package/dist/validators/custom-validators/greater-or-equal-than.js.map +1 -1
- package/dist/validators/custom-validators/greater-than-date.js +6 -6
- package/dist/validators/custom-validators/greater-than-date.js.map +1 -1
- package/dist/validators/custom-validators/index.js +5 -1
- package/dist/validators/custom-validators/index.js.map +1 -1
- package/dist/validators/custom-validators/is-empty-if.js +6 -6
- package/dist/validators/custom-validators/is-empty-if.js.map +1 -1
- package/dist/validators/custom-validators/is-not-empty-if.js +5 -5
- package/dist/validators/custom-validators/is-not-empty-if.js.map +1 -1
- package/dist/validators/custom-validators/is-not-in-relative-to.js +5 -6
- package/dist/validators/custom-validators/is-not-in-relative-to.js.map +1 -1
- package/dist/validators/custom-validators/is-optional-if.d.ts +4 -1
- package/dist/validators/custom-validators/is-optional-if.js +9 -17
- package/dist/validators/custom-validators/is-optional-if.js.map +1 -1
- package/dist/validators/custom-validators/pascal-case.js +2 -2
- package/dist/validators/custom-validators/pascal-case.js.map +1 -1
- package/dist/validators/index.js +5 -1
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/validate.d.ts +2 -1
- package/dist/validators/validate.js +28 -41
- package/dist/validators/validate.js.map +1 -1
- package/dist/validators/validation-error.js +5 -6
- package/dist/validators/validation-error.js.map +1 -1
- package/dist/vendors/index.js +5 -1
- package/dist/vendors/index.js.map +1 -1
- package/dist/vendors/lodash.d.ts +1 -1
- package/dist/vendors/lodash.js +2 -1
- package/dist/vendors/lodash.js.map +1 -1
- package/package.json +11 -11
- package/src/aggregate.ts +1 -1
- package/src/command.ts +1 -1
- package/src/event.ts +8 -8
- package/src/json-helper.ts +9 -0
- package/src/model.ts +1 -1
- package/src/serialize/index.ts +2 -1
- package/src/serialize/serializable.ts +1 -1
- package/src/serialize/serialize-helper.ts +43 -0
- package/src/validators/custom-validators/is-not-in-relative-to.ts +3 -5
- package/src/validators/custom-validators/is-optional-if.ts +9 -18
- package/src/validators/validate.ts +38 -35
- package/src/vendors/lodash.ts +1 -0
- package/tsconfig.json +7 -10
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IsNotInRelativeTo = void 0;
|
|
4
|
-
|
|
5
|
-
var globalValidator = new class_validator_1.Validator();
|
|
4
|
+
const class_validator_1 = require("class-validator");
|
|
6
5
|
function IsNotInRelativeTo(excludedValuesCallback, validationOptions) {
|
|
7
6
|
return function (object, propertyName) {
|
|
8
7
|
(0, class_validator_1.registerDecorator)({
|
|
@@ -12,13 +11,13 @@ function IsNotInRelativeTo(excludedValuesCallback, validationOptions) {
|
|
|
12
11
|
constraints: [{ name: 'isNotInRelativeTo', relativeValueCallback: excludedValuesCallback }],
|
|
13
12
|
options: validationOptions,
|
|
14
13
|
validator: {
|
|
15
|
-
validate
|
|
16
|
-
|
|
14
|
+
validate(value, args) {
|
|
15
|
+
const excludedValues = args.constraints[0].relativeValueCallback(args.object);
|
|
17
16
|
if (Array.isArray(value) && validationOptions && validationOptions.each) {
|
|
18
|
-
return value.every(
|
|
17
|
+
return value.every(v => (0, class_validator_1.isNotIn)(v, excludedValues));
|
|
19
18
|
}
|
|
20
19
|
else {
|
|
21
|
-
return
|
|
20
|
+
return (0, class_validator_1.isNotIn)(value, excludedValues);
|
|
22
21
|
}
|
|
23
22
|
}
|
|
24
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-not-in-relative-to.js","sourceRoot":"","sources":["../../../src/validators/custom-validators/is-not-in-relative-to.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"is-not-in-relative-to.js","sourceRoot":"","sources":["../../../src/validators/custom-validators/is-not-in-relative-to.ts"],"names":[],"mappings":";;;AAAA,qDAAqG;AAErG,SAAgB,iBAAiB,CAAO,sBAA0C,EAAE,iBAAqC;IACrH,OAAO,UAAU,MAA2B,EAAE,YAAoB;QAC9D,IAAA,mCAAiB,EAAC;YACd,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,CAAC;YAC3F,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACP,QAAQ,CAAC,KAAU,EAAE,IAAyB;oBAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,EAAE;wBACrE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,yBAAO,EAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;qBACvD;yBAAM;wBACH,OAAO,IAAA,yBAAO,EAAC,KAAK,EAAE,cAAc,CAAC,CAAC;qBACzC;gBACL,CAAC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AApBD,8CAoBC"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import { ValidationOptions } from 'class-validator';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Checks if value is missing and if so, ignores all validators.
|
|
4
|
+
**/
|
|
5
|
+
export declare function IsOptionalIf<T>(condition: (object: T, value: any) => boolean, validationOptions?: ValidationOptions): PropertyDecorator;
|
|
@@ -1,24 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IsOptionalIf = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
// eslint-disable-next-line no-restricted-imports
|
|
5
|
+
const class_validator_1 = require("class-validator");
|
|
6
|
+
/**
|
|
7
|
+
* Checks if value is missing and if so, ignores all validators.
|
|
8
|
+
**/
|
|
6
9
|
function IsOptionalIf(condition, validationOptions) {
|
|
7
|
-
return
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
propertyName: propertyName,
|
|
12
|
-
constraints: [function (cobject, value) {
|
|
13
|
-
if (condition(cobject, value)) {
|
|
14
|
-
return cobject[propertyName] !== '' && cobject[propertyName] !== null && cobject[propertyName] !== undefined;
|
|
15
|
-
}
|
|
16
|
-
return true;
|
|
17
|
-
}],
|
|
18
|
-
validationOptions: validationOptions
|
|
19
|
-
};
|
|
20
|
-
(0, class_validator_1.getFromContainer)(class_validator_1.MetadataStorage).addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args));
|
|
21
|
-
};
|
|
10
|
+
return (0, class_validator_1.ValidateIf)((object, value) => {
|
|
11
|
+
const valueIsNil = (value === '' || value === null || value === undefined);
|
|
12
|
+
return !valueIsNil || !condition(object, value);
|
|
13
|
+
}, validationOptions);
|
|
22
14
|
}
|
|
23
15
|
exports.IsOptionalIf = IsOptionalIf;
|
|
24
16
|
//# sourceMappingURL=is-optional-if.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-optional-if.js","sourceRoot":"","sources":["../../../src/validators/custom-validators/is-optional-if.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"is-optional-if.js","sourceRoot":"","sources":["../../../src/validators/custom-validators/is-optional-if.ts"],"names":[],"mappings":";;;AAAA,iDAAiD;AACjD,qDAAgE;AAEhE;;IAEI;AACJ,SAAgB,YAAY,CAAI,SAA6C,EAAE,iBAAqC;IAChH,OAAO,IAAA,4BAAU,EAAC,CAAC,MAAS,EAAE,KAAU,EAAE,EAAE;QACxC,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC;QAC3E,OAAO,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAC1B,CAAC;AALD,oCAKC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PascalCase = void 0;
|
|
4
|
-
|
|
4
|
+
const class_validator_1 = require("class-validator");
|
|
5
5
|
function PascalCase(validationOptions) {
|
|
6
6
|
return function (object, propertyName) {
|
|
7
7
|
(0, class_validator_1.registerDecorator)({
|
|
@@ -11,7 +11,7 @@ function PascalCase(validationOptions) {
|
|
|
11
11
|
constraints: [{ name: 'pascalCase' }],
|
|
12
12
|
options: validationOptions,
|
|
13
13
|
validator: {
|
|
14
|
-
validate
|
|
14
|
+
validate(value) {
|
|
15
15
|
return /^([A-Z]{1,3}[a-z0-9]*)+$/.test(value);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pascal-case.js","sourceRoot":"","sources":["../../../src/validators/custom-validators/pascal-case.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"pascal-case.js","sourceRoot":"","sources":["../../../src/validators/custom-validators/pascal-case.ts"],"names":[],"mappings":";;;AAAA,qDAAuE;AAEvE,SAAgB,UAAU,CAAC,iBAAqC;IAC5D,OAAO,UAAU,MAA2B,EAAE,YAAoB;QAC9D,IAAA,mCAAiB,EAAC;YACd,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YACrC,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACP,QAAQ,CAAC,KAAU;oBACf,OAAO,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClD,CAAC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AAfD,gCAeC"}
|
package/dist/validators/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,mDAeyB;AAdrB,2BAA2B;AAC3B,gHAAA,aAAa,OAAA;AAAE,+GAAA,YAAY,OAAA;AAAE,+GAAA,YAAY,OAAA;AAAE,mHAAA,gBAAgB,OAAA;AAAE,gHAAA,aAAa,OAAA;AAAE,8GAAA,WAAW,OAAA;AACvF,4BAA4B;AAC5B,2GAAA,QAAQ,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,0GAAA,OAAO,OAAA;AAAE,iHAAA,cAAc,OAAA;AACzC,0BAA0B;AAC1B,0GAAA,OAAO,OAAA;AAAE,0GAAA,OAAO,OAAA;AAAE,2GAAA,QAAQ,OAAA;AAAE,4GAAA,SAAS,OAAA;AACrC,iCAAiC;AACjC,kHAAA,eAAe,OAAA;AAAE,+GAAA,YAAY,OAAA;AAC7B,+GAAA,YAAY,OAAA;AAAE,6GAAA,UAAU,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,4GAAA,SAAS,OAAA;AAC3C,4BAA4B;AAC5B,gHAAA,aAAa,OAAA;AAAE,0GAAA,OAAO,OAAA;AAAE,0GAAA,OAAO,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,8GAAA,WAAW,OAAA;AAAE,8GAAA,WAAW,OAAA;AAAE,6GAAA,UAAU,OAAA;AAAE,gHAAA,aAAa,OAAA;AAAE,uGAAA,IAAI,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,uGAAA,IAAI,OAAA;AAAE,wGAAA,KAAK,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,8GAAA,WAAW,OAAA;AAAE,iHAAA,cAAc,OAAA;AAAE,gHAAA,aAAa,OAAA;AACtM,4GAAA,SAAS,OAAA;AAAE,8GAAA,WAAW,OAAA;AAAE,6GAAA,UAAU,OAAA;AAAE,6GAAA,UAAU,OAAA;AAAE,0GAAA,OAAO,OAAA;AAAE,2GAAA,QAAQ,OAAA;AAAE,iHAAA,cAAc,OAAA;AAAE,6GAAA,UAAU,OAAA;AAAE,6GAAA,UAAU,OAAA;AAAE,2GAAA,QAAQ,OAAA;AAAE,kHAAA,eAAe,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,8GAAA,WAAW,OAAA;AAAE,wGAAA,KAAK,OAAA;AAAE,kHAAA,eAAe,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,0GAAA,OAAO,OAAA;AAAE,sGAAA,GAAG,OAAA;AAAE,0GAAA,OAAO,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,sGAAA,GAAG,OAAA;AAChO,0BAA0B;AAC1B,0GAAA,OAAO,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,8GAAA,WAAW,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,iHAAA,cAAc,OAAA;AAE9D,sDAAoC;AACpC,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validate = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var validation_error_1 = require("./validation-error");
|
|
4
|
+
const class_validator_1 = require("class-validator");
|
|
5
|
+
const validation_error_1 = require("./validation-error");
|
|
7
6
|
function validate(data) {
|
|
8
|
-
|
|
7
|
+
const errors = (0, class_validator_1.validateSync)(data);
|
|
9
8
|
return recursiveGetErrors(errors);
|
|
10
9
|
}
|
|
11
10
|
exports.validate = validate;
|
|
12
|
-
|
|
11
|
+
const validationPriorities = [
|
|
13
12
|
// common validation methods
|
|
14
13
|
'isDefined',
|
|
15
14
|
'equals',
|
|
@@ -89,47 +88,35 @@ var validationPriorities = [
|
|
|
89
88
|
'isOptionalIf',
|
|
90
89
|
'pascalCase'
|
|
91
90
|
];
|
|
92
|
-
function
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
var _a;
|
|
107
|
-
var actualPropertyName = propertyName;
|
|
108
|
-
var actualPreviousValueWasArray = previousValueWasArray;
|
|
109
|
-
if (((_a = validationError.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
110
|
-
if (actualPreviousValueWasArray) {
|
|
111
|
-
actualPropertyName = "".concat(actualPropertyName, "[").concat(validationError.property, "]");
|
|
91
|
+
function recursiveGetErrors(validationErrors, errors = [], propertyName = '', previousValueWasArray = false) {
|
|
92
|
+
for (const validationError of validationErrors) {
|
|
93
|
+
if (!validationError) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
if (validationError.constraints) {
|
|
97
|
+
const containsNestedValidation = Object.keys(validationError.constraints).some(v => v === 'nestedValidation') && validationError.children.length > 0;
|
|
98
|
+
const validations = Object.keys(validationError.constraints);
|
|
99
|
+
const constraintName = validationPriorities.find(cm => validations.some(cs => cs.split('-')[0] === cm));
|
|
100
|
+
let domainErrorCode;
|
|
101
|
+
let i = 0;
|
|
102
|
+
while (!domainErrorCode) {
|
|
103
|
+
domainErrorCode = validations.find(vp => vp.split('-')[0] === validationPriorities[i]);
|
|
104
|
+
i++;
|
|
112
105
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
actualPropertyName ? "".concat(actualPropertyName, ".").concat(validationError.property) : validationError.property;
|
|
106
|
+
if (validationError.contexts && validationError.contexts[domainErrorCode] && validationError.contexts[domainErrorCode].domainErrorCodes) {
|
|
107
|
+
domainErrorCode = validationError.contexts[domainErrorCode].domainErrorCodes;
|
|
116
108
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
errors = recursiveGetErrors(validationErrors, errors, actualPropertyName, actualPreviousValueWasArray);
|
|
109
|
+
const domainErrorProperty = propertyName ? (containsNestedValidation ? propertyName : `${propertyName}.${validationError.property}`) : validationError.property;
|
|
110
|
+
errors.push(new validation_error_1.ValidationError(domainErrorProperty, validationError.value, constraintName, null));
|
|
120
111
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
logger_1.Logger.warn("validate: Constraint not found for ".concat(actualPropertyName));
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
var metadatas = getMetadatas(validationError, constraintName);
|
|
129
|
-
errors.push(new validation_error_1.ValidationError(actualPropertyName, validationError.value, constraintName, metadatas ? metadatas.message : null));
|
|
112
|
+
if (validationError.children && validationError.children.length) {
|
|
113
|
+
let childName = validationError.property;
|
|
114
|
+
if (propertyName) {
|
|
115
|
+
childName = previousValueWasArray ? `${propertyName}[${validationError.property}]` : `${propertyName}.${validationError.property}`;
|
|
130
116
|
}
|
|
117
|
+
errors = recursiveGetErrors(validationError.children.filter(ve => ve.constraints ? !Object.keys(ve.constraints).includes('nestedValidation') || ve.children.length === 0 : true), errors, childName, Array.isArray(validationError.value));
|
|
131
118
|
}
|
|
132
|
-
}
|
|
119
|
+
}
|
|
133
120
|
return errors;
|
|
134
121
|
}
|
|
135
122
|
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validators/validate.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validators/validate.ts"],"names":[],"mappings":";;;AAAA,qDAAiG;AAGjG,yDAAqD;AAErD,SAAgB,QAAQ,CAAC,IAAa;IAClC,MAAM,MAAM,GAAG,IAAA,8BAAY,EAAC,IAAI,CAAC,CAAC;IAClC,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAHD,4BAGC;AAED,MAAM,oBAAoB,GAAG;IACzB,4BAA4B;IAC5B,WAAW;IACX,QAAQ;IACR,WAAW;IACX,SAAS;IACT,YAAY;IACZ,MAAM;IACN,SAAS;IACT,0BAA0B;IAC1B,SAAS;IACT,WAAW;IACX,QAAQ;IACR,UAAU;IACV,UAAU;IACV,OAAO;IACP,QAAQ;IACR,4BAA4B;IAC5B,eAAe;IACf,YAAY;IACZ,YAAY;IACZ,KAAK;IACL,KAAK;IACL,0BAA0B;IAC1B,SAAS;IACT,SAAS;IACT,iCAAiC;IACjC,iBAAiB;IACjB,gBAAgB;IAChB,4BAA4B;IAC5B,UAAU;IACV,aAAa;IACb,SAAS;IACT,gBAAgB;IAChB,SAAS;IACT,UAAU;IACV,cAAc;IACd,cAAc;IACd,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,YAAY;IACZ,eAAe;IACf,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,aAAa;IACb,eAAe;IACf,WAAW;IACX,aAAa;IACb,iBAAiB;IACjB,OAAO;IACP,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,WAAW;IACX,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,2BAA2B;IAC3B,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,cAAc;IACd,cAAc;IACd,aAAa;IACb,SAAS;IACT,WAAW;IACX,UAAU;IACV,oBAAoB;IACpB,iBAAiB;IACjB,mBAAmB;IACnB,cAAc;IACd,YAAY;CACf,CAAC;AAEF,SAAS,kBAAkB,CAAC,gBAAiD,EAAE,SAA4B,EAAE,EACzG,YAAY,GAAG,EAAE,EAAE,qBAAqB,GAAG,KAAK;IAChD,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;QAC5C,IAAI,CAAC,eAAe,EAAE;YAClB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,eAAe,CAAC,WAAW,EAAE;YAC7B,MAAM,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACrJ,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAE7D,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAExG,IAAI,eAAuB,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,eAAe,EAAE;gBACrB,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvF,CAAC,EAAE,CAAC;aACP;YAED,IAAI,eAAe,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE;gBACrI,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC;aAChF;YAED,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC;YAEhK,MAAM,CAAC,IAAI,CAAC,IAAI,kCAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;SACtG;QAED,IAAI,eAAe,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC7D,IAAI,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC;YACzC,IAAI,YAAY,EAAE;gBACd,SAAS,GAAG,qBAAqB,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,eAAe,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;aACtI;YAED,MAAM,GAAG,kBAAkB,CACvB,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EACpJ,MAAM,EACN,SAAS,EACT,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CACvC,CAAC;SACL;KACJ;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ValidationError = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
class ValidationError {
|
|
5
|
+
constructor(property, value, type, message) {
|
|
6
6
|
this.property = property;
|
|
7
7
|
this.value = value;
|
|
8
8
|
this.type = type;
|
|
9
9
|
this.message = message;
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
getErrorMessage() {
|
|
12
12
|
if (this.message && typeof this.message === 'string') {
|
|
13
13
|
return this.message;
|
|
14
14
|
}
|
|
@@ -22,8 +22,7 @@ var ValidationError = /** @class */ (function () {
|
|
|
22
22
|
default:
|
|
23
23
|
return this.type;
|
|
24
24
|
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
}());
|
|
25
|
+
}
|
|
26
|
+
}
|
|
28
27
|
exports.ValidationError = ValidationError;
|
|
29
28
|
//# sourceMappingURL=validation-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../../src/validators/validation-error.ts"],"names":[],"mappings":";;;AAEA;
|
|
1
|
+
{"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../../src/validators/validation-error.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IACxB,YACoB,QAAgB,EAChB,KAAa,EACb,IAAY,EACZ,OAAyD;QAHzD,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAQ;QACb,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAkD;IAE7E,CAAC;IAEM,eAAe;QAClB,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;YAClD,OAAO,IAAI,CAAC,OAAO,CAAC;SACvB;QACD,QAAQ,IAAI,CAAC,IAAI,EAAE;YACf,KAAK,YAAY;gBACb,OAAO,oBAAoB,CAAC;YAChC,KAAK,WAAW;gBACZ,OAAO,yCAAyC,CAAC;YACrD,KAAK,YAAY;gBACb,OAAO,0CAA0C,CAAC;YACtD;gBACI,OAAO,IAAI,CAAC,IAAI,CAAC;SACxB;IACL,CAAC;CACJ;AAxBD,0CAwBC"}
|
package/dist/vendors/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vendors/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vendors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
|
package/dist/vendors/lodash.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { chunk as _chunk, cloneDeep as _cloneDeep, deburr as _deburr, first as _first, flatten as _flatten, flattenDeep as _flattenDeep, get as _get, groupBy as _groupBy, isArray as _isArray, isBoolean as _isBoolean, isDate as _isDate, isEqual as _isEqual, isNil as _isNil, isObjectLike as _isObjectLike, isString as _isString, kebabCase as _kebabCase, keys as _keys, last as _last, maxBy as _maxBy, minBy as _minBy, orderBy as _orderBy, padStart as _padStart, shuffle as _shuffle, sortBy as _sortBy, sum as _sum, sumBy as _sumBy, trim as _trim, trimEnd as _trimEnd, trimStart as _trimStart, uniq as _uniq, upperFirst as _upperFirst, words as _words } from 'lodash';
|
|
1
|
+
export { chunk as _chunk, cloneDeep as _cloneDeep, deburr as _deburr, first as _first, flatten as _flatten, flattenDeep as _flattenDeep, get as _get, groupBy as _groupBy, isArray as _isArray, isBoolean as _isBoolean, isDate as _isDate, isEqual as _isEqual, isNil as _isNil, isObjectLike as _isObjectLike, isString as _isString, kebabCase as _kebabCase, keys as _keys, last as _last, maxBy as _maxBy, minBy as _minBy, orderBy as _orderBy, padStart as _padStart, shuffle as _shuffle, sortBy as _sortBy, sum as _sum, sumBy as _sumBy, trim as _trim, trimEnd as _trimEnd, trimStart as _trimStart, uniq as _uniq, uniqBy as _uniqBy, upperFirst as _upperFirst, words as _words } from 'lodash';
|
package/dist/vendors/lodash.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports._words = exports._upperFirst = exports._uniq = exports._trimStart = exports._trimEnd = exports._trim = exports._sumBy = exports._sum = exports._sortBy = exports._shuffle = exports._padStart = exports._orderBy = exports._minBy = exports._maxBy = exports._last = exports._keys = exports._kebabCase = exports._isString = exports._isObjectLike = exports._isNil = exports._isEqual = exports._isDate = exports._isBoolean = exports._isArray = exports._groupBy = exports._get = exports._flattenDeep = exports._flatten = exports._first = exports._deburr = exports._cloneDeep = exports._chunk = void 0;
|
|
3
|
+
exports._words = exports._upperFirst = exports._uniqBy = exports._uniq = exports._trimStart = exports._trimEnd = exports._trim = exports._sumBy = exports._sum = exports._sortBy = exports._shuffle = exports._padStart = exports._orderBy = exports._minBy = exports._maxBy = exports._last = exports._keys = exports._kebabCase = exports._isString = exports._isObjectLike = exports._isNil = exports._isEqual = exports._isDate = exports._isBoolean = exports._isArray = exports._groupBy = exports._get = exports._flattenDeep = exports._flatten = exports._first = exports._deburr = exports._cloneDeep = exports._chunk = void 0;
|
|
4
4
|
var lodash_1 = require("lodash");
|
|
5
5
|
Object.defineProperty(exports, "_chunk", { enumerable: true, get: function () { return lodash_1.chunk; } });
|
|
6
6
|
Object.defineProperty(exports, "_cloneDeep", { enumerable: true, get: function () { return lodash_1.cloneDeep; } });
|
|
@@ -32,6 +32,7 @@ Object.defineProperty(exports, "_trim", { enumerable: true, get: function () { r
|
|
|
32
32
|
Object.defineProperty(exports, "_trimEnd", { enumerable: true, get: function () { return lodash_1.trimEnd; } });
|
|
33
33
|
Object.defineProperty(exports, "_trimStart", { enumerable: true, get: function () { return lodash_1.trimStart; } });
|
|
34
34
|
Object.defineProperty(exports, "_uniq", { enumerable: true, get: function () { return lodash_1.uniq; } });
|
|
35
|
+
Object.defineProperty(exports, "_uniqBy", { enumerable: true, get: function () { return lodash_1.uniqBy; } });
|
|
35
36
|
Object.defineProperty(exports, "_upperFirst", { enumerable: true, get: function () { return lodash_1.upperFirst; } });
|
|
36
37
|
Object.defineProperty(exports, "_words", { enumerable: true, get: function () { return lodash_1.words; } });
|
|
37
38
|
//# sourceMappingURL=lodash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lodash.js","sourceRoot":"","sources":["../../src/vendors/lodash.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"lodash.js","sourceRoot":"","sources":["../../src/vendors/lodash.ts"],"names":[],"mappings":";;;AAAA,iCAkCgB;AAjCZ,gGAAA,KAAK,OAAU;AACf,oGAAA,SAAS,OAAc;AACvB,iGAAA,MAAM,OAAW;AACjB,gGAAA,KAAK,OAAU;AACf,kGAAA,OAAO,OAAY;AACnB,sGAAA,WAAW,OAAgB;AAC3B,8FAAA,GAAG,OAAQ;AACX,kGAAA,OAAO,OAAY;AACnB,kGAAA,OAAO,OAAY;AACnB,oGAAA,SAAS,OAAc;AACvB,iGAAA,MAAM,OAAW;AACjB,kGAAA,OAAO,OAAY;AACnB,gGAAA,KAAK,OAAU;AACf,uGAAA,YAAY,OAAiB;AAC7B,mGAAA,QAAQ,OAAa;AACrB,oGAAA,SAAS,OAAc;AACvB,+FAAA,IAAI,OAAS;AACb,+FAAA,IAAI,OAAS;AACb,gGAAA,KAAK,OAAU;AACf,gGAAA,KAAK,OAAU;AACf,kGAAA,OAAO,OAAY;AACnB,mGAAA,QAAQ,OAAa;AACrB,kGAAA,OAAO,OAAY;AACnB,iGAAA,MAAM,OAAW;AACjB,8FAAA,GAAG,OAAQ;AACX,gGAAA,KAAK,OAAU;AACf,+FAAA,IAAI,OAAS;AACb,kGAAA,OAAO,OAAY;AACnB,oGAAA,SAAS,OAAc;AACvB,+FAAA,IAAI,OAAS;AACb,iGAAA,MAAM,OAAW;AACjB,qGAAA,UAAU,OAAe;AACzB,gGAAA,KAAK,OAAU"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@my-devkit/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.101",
|
|
4
4
|
"description": "My Devkit: common tools",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -17,20 +17,20 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"cerialize": "0.1.18",
|
|
20
|
-
"class-validator": "0.
|
|
20
|
+
"class-validator": "0.14.1",
|
|
21
21
|
"lodash": "4.17.21",
|
|
22
|
-
"save": "2.
|
|
23
|
-
"uuid": "
|
|
22
|
+
"save": "2.9.0",
|
|
23
|
+
"uuid": "9.0.1"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@my-devkit/cli": "2.0.
|
|
28
|
-
"@types/lodash": "4.14.
|
|
29
|
-
"@types/node": "
|
|
30
|
-
"@typescript-eslint/eslint-plugin": "
|
|
31
|
-
"@typescript-eslint/parser": "
|
|
27
|
+
"@my-devkit/cli": "2.0.6",
|
|
28
|
+
"@types/lodash": "4.14.202",
|
|
29
|
+
"@types/node": "20.10.5",
|
|
30
|
+
"@typescript-eslint/eslint-plugin": "6.16.0",
|
|
31
|
+
"@typescript-eslint/parser": "6.16.0",
|
|
32
32
|
"cpx": "1.5.0",
|
|
33
|
-
"eslint": "
|
|
34
|
-
"typescript": "
|
|
33
|
+
"eslint": "8.56.0",
|
|
34
|
+
"typescript": "5.2.2"
|
|
35
35
|
}
|
|
36
36
|
}
|
package/src/aggregate.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { autoserializeAs } from './serialize';
|
|
|
4
4
|
|
|
5
5
|
export abstract class Aggregate implements Document {
|
|
6
6
|
@autoserializeAs(String) public id: string = null;
|
|
7
|
-
@autoserializeAs(String) public _type
|
|
7
|
+
@autoserializeAs(String) public _type?: string = null;
|
|
8
8
|
|
|
9
9
|
public constructor() {
|
|
10
10
|
this._type = this.constructor.name;
|
package/src/command.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { autoserializeAs, serializable } from './serialize';
|
|
2
2
|
|
|
3
3
|
export abstract class Command implements serializable.SerializableObject {
|
|
4
|
-
@autoserializeAs(String) public _type
|
|
4
|
+
@autoserializeAs(String) public _type?: string = null;
|
|
5
5
|
|
|
6
6
|
constructor(commandType: string) {
|
|
7
7
|
this._type = commandType;
|
package/src/event.ts
CHANGED
|
@@ -4,13 +4,13 @@ import { autoserializeAs } from './serialize';
|
|
|
4
4
|
|
|
5
5
|
export abstract class Event implements Document {
|
|
6
6
|
public static counter = 0;
|
|
7
|
-
@autoserializeAs(String) public id
|
|
8
|
-
@autoserializeAs(String) public _type
|
|
9
|
-
@autoserializeAs(String) public _correlationId
|
|
10
|
-
@autoserializeAs(String) public _aggregateType
|
|
11
|
-
@autoserializeAs(String) public _aggregateId
|
|
12
|
-
@autoserializeAs(String) public _publishedBy
|
|
13
|
-
@autoserializeAs(String) private _publishedAt
|
|
7
|
+
@autoserializeAs(String) public id?: string = null;
|
|
8
|
+
@autoserializeAs(String) public _type?: string = null;
|
|
9
|
+
@autoserializeAs(String) public _correlationId?: string = null;
|
|
10
|
+
@autoserializeAs(String) public _aggregateType?: string = null;
|
|
11
|
+
@autoserializeAs(String) public _aggregateId?: string = null;
|
|
12
|
+
@autoserializeAs(String) public _publishedBy?: string = null;
|
|
13
|
+
@autoserializeAs(String) private _publishedAt?: string = null;
|
|
14
14
|
|
|
15
15
|
constructor() {
|
|
16
16
|
this.id = guid();
|
|
@@ -22,7 +22,7 @@ export abstract class Event implements Document {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
public get publishedAt(): Date {
|
|
25
|
-
return new Date(this._publishedAt.
|
|
25
|
+
return new Date(this._publishedAt.substring(0, 23) + 'Z');
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
public set publishedAt(date: Date) {
|
package/src/json-helper.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
export class JsonHelper {
|
|
2
|
+
public static isJson(body: string): boolean {
|
|
3
|
+
try {
|
|
4
|
+
JSON.parse(body);
|
|
5
|
+
return true;
|
|
6
|
+
} catch {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
2
11
|
public static parse<T>(body: string): T {
|
|
3
12
|
return JSON.parse(body, JsonHelper.dateParser.bind(this));
|
|
4
13
|
}
|
package/src/model.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { autoserializeAs } from 'cerialize';
|
|
|
3
3
|
import { Document } from './document';
|
|
4
4
|
|
|
5
5
|
export abstract class Model implements Document {
|
|
6
|
-
@autoserializeAs(String) public _type
|
|
6
|
+
@autoserializeAs(String) public _type?: string = null;
|
|
7
7
|
|
|
8
8
|
constructor(modelType: string, private pathCallback: () => string) {
|
|
9
9
|
this._type = modelType;
|
package/src/serialize/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './deserialize';
|
|
2
|
-
export * from './serialize';
|
|
3
2
|
export * from './serializable';
|
|
3
|
+
export * from './serialize';
|
|
4
|
+
export * from './serialize-helper';
|
|
4
5
|
export * from './type-helper';
|
|
5
6
|
|
|
6
7
|
export { autoserialize, autoserializeAs, inheritSerialization } from 'cerialize';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { words as _words, compact, deburr, uniq } from 'lodash';
|
|
2
|
+
|
|
3
|
+
export class SerializeHelper {
|
|
4
|
+
public static getSearchKeyWords(criterias: (string | number)[], smartSearchCriterias: string[] = []): string[] {
|
|
5
|
+
const smartSearchWords = this.getSmartSearchKeyWords(smartSearchCriterias);
|
|
6
|
+
return compact(uniq(this.getWords([...criterias, ...smartSearchWords]))).sort();
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
private static getSmartSearchKeyWords(criterias: string[]): string[] {
|
|
10
|
+
return this.getWords(criterias)
|
|
11
|
+
.flatMap(word => {
|
|
12
|
+
const result: string[] = [word];
|
|
13
|
+
for (let length = 2; length < word.length; length++)
|
|
14
|
+
result.push(word.substring(0, length));
|
|
15
|
+
|
|
16
|
+
return result;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
private static getWords(criterias: (string | number)[]): string[] {
|
|
21
|
+
const excapedCharacters = ['(', ')', '[', ']', '{', '}', ',', '!', '?', ':', '...', '. ', '=', '+', '-', '*', '%', '\'', '"', '`', '\\', '/', '|', '_', '#'];
|
|
22
|
+
|
|
23
|
+
let phrase = deburr(_words(criterias.join(' ')).join(' ')).toLowerCase();
|
|
24
|
+
for (const excapedCharacter of excapedCharacters)
|
|
25
|
+
phrase = phrase.replaceAll(excapedCharacter, ' ');
|
|
26
|
+
|
|
27
|
+
const phraseWords = _words(phrase).flatMap(word => {
|
|
28
|
+
const result = [word];
|
|
29
|
+
|
|
30
|
+
// Remove leading zeros 00012345 => 12345
|
|
31
|
+
if (word.match(/^[0-9]{5,}$/g))
|
|
32
|
+
result.push(word.replace(/^0+/, ''));
|
|
33
|
+
|
|
34
|
+
// Remove trailing s (to get singular word)
|
|
35
|
+
if (word.match(/^.{3,}[^S]{1}[S]{1}$/g))
|
|
36
|
+
result.push(word.replace(/[S]{1}$/, ''));
|
|
37
|
+
|
|
38
|
+
return result;
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
return phraseWords;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { registerDecorator, ValidationArguments, ValidationOptions
|
|
2
|
-
|
|
3
|
-
const globalValidator = new Validator();
|
|
1
|
+
import { isNotIn, registerDecorator, ValidationArguments, ValidationOptions } from 'class-validator';
|
|
4
2
|
|
|
5
3
|
export function IsNotInRelativeTo<T, S>(excludedValuesCallback: (object: T) => S[], validationOptions?: ValidationOptions) {
|
|
6
4
|
return function (object: Record<string, any>, propertyName: string): void {
|
|
@@ -14,9 +12,9 @@ export function IsNotInRelativeTo<T, S>(excludedValuesCallback: (object: T) => S
|
|
|
14
12
|
validate(value: any, args: ValidationArguments) {
|
|
15
13
|
const excludedValues = args.constraints[0].relativeValueCallback(args.object);
|
|
16
14
|
if (Array.isArray(value) && validationOptions && validationOptions.each) {
|
|
17
|
-
return value.every(v =>
|
|
15
|
+
return value.every(v => isNotIn(v, excludedValues));
|
|
18
16
|
} else {
|
|
19
|
-
return
|
|
17
|
+
return isNotIn(value, excludedValues);
|
|
20
18
|
}
|
|
21
19
|
}
|
|
22
20
|
}
|
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { ValidationMetadataArgs } from 'class-validator/metadata/ValidationMetadataArgs';
|
|
1
|
+
// eslint-disable-next-line no-restricted-imports
|
|
2
|
+
import { ValidateIf, ValidationOptions } from 'class-validator';
|
|
4
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Checks if value is missing and if so, ignores all validators.
|
|
6
|
+
**/
|
|
5
7
|
export function IsOptionalIf<T>(condition: (object: T, value: any) => boolean, validationOptions?: ValidationOptions) {
|
|
6
|
-
return
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
propertyName: propertyName,
|
|
11
|
-
constraints: [(cobject: any, value: any) => {
|
|
12
|
-
if (condition(cobject, value)) {
|
|
13
|
-
return cobject[propertyName] !== '' && cobject[propertyName] !== null && cobject[propertyName] !== undefined;
|
|
14
|
-
}
|
|
15
|
-
return true;
|
|
16
|
-
}],
|
|
17
|
-
validationOptions: validationOptions
|
|
18
|
-
};
|
|
19
|
-
getFromContainer(MetadataStorage).addValidationMetadata(new ValidationMetadata(args));
|
|
20
|
-
};
|
|
8
|
+
return ValidateIf((object: T, value: any) => {
|
|
9
|
+
const valueIsNil = (value === '' || value === null || value === undefined);
|
|
10
|
+
return !valueIsNil || !condition(object, value);
|
|
11
|
+
}, validationOptions);
|
|
21
12
|
}
|