@nu-art/ts-common 0.102.26 → 0.102.27

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/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './testing/test-model';
1
+ export * from './testing/test-case';
2
2
  export * from './core/module';
3
3
  export * from './core/module-manager';
4
4
  export * from './core/application';
package/index.js CHANGED
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
31
31
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
- __exportStar(require("./testing/test-model"), exports);
34
+ __exportStar(require("./testing/test-case"), exports);
35
35
  __exportStar(require("./core/module"), exports);
36
36
  __exportStar(require("./core/module-manager"), exports);
37
37
  __exportStar(require("./core/application"), exports);
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/main/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;AAEH,uDAAqC;AAErC,gDAA8B;AAC9B,wDAAsC;AACtC,qDAAmC;AACnC,oDAAkC;AAClC,oDAAkC;AAClC,wDAAsC;AAEtC,qDAAmC;AACnC,sDAAoC;AACpC,qEAAmD;AACnD,mEAAiD;AACjD,oEAAkD;AAClD,kEAAgD;AAChD,mEAAiD;AACjD,yDAAuC;AACvC,uDAAqC;AACrC,sDAAoC;AACpC,0DAAwC;AAExC,iEAA+C;AAE/C,mDAAiC;AACjC,wDAAsC;AAEtC,gDAA8B;AAC9B,gDAA8B;AAC9B,uDAAqC;AACrC,uDAAqC;AACrC,iEAA+C;AAC/C,yDAAuC;AACvC,uDAAqC;AACrC,uDAAqC;AACrC,0DAAwC;AACxC,sDAAoC;AACpC,uDAAqC;AACrC,sDAAoC;AACpC,wDAAsC;AACtC,uDAAqC;AACrC,gDAA8B;AAC9B,qDAAmC;AACnC,uDAAqC;AAErC,wDAAsC;AAEtC,kDAAgC;AAEhC,4DAA0C;AAC1C,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/main/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;AAEH,sDAAoC;AAEpC,gDAA8B;AAC9B,wDAAsC;AACtC,qDAAmC;AACnC,oDAAkC;AAClC,oDAAkC;AAClC,wDAAsC;AAEtC,qDAAmC;AACnC,sDAAoC;AACpC,qEAAmD;AACnD,mEAAiD;AACjD,oEAAkD;AAClD,kEAAgD;AAChD,mEAAiD;AACjD,yDAAuC;AACvC,uDAAqC;AACrC,sDAAoC;AACpC,0DAAwC;AAExC,iEAA+C;AAE/C,mDAAiC;AACjC,wDAAsC;AAEtC,gDAA8B;AAC9B,gDAA8B;AAC9B,uDAAqC;AACrC,uDAAqC;AACrC,iEAA+C;AAC/C,yDAAuC;AACvC,uDAAqC;AACrC,uDAAqC;AACrC,0DAAwC;AACxC,sDAAoC;AACpC,uDAAqC;AACrC,sDAAoC;AACpC,wDAAsC;AACtC,uDAAqC;AACrC,gDAA8B;AAC9B,qDAAmC;AACnC,uDAAqC;AAErC,wDAAsC;AAEtC,kDAAgC;AAEhC,4DAA0C;AAC1C,2DAAyC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nu-art/ts-common",
3
- "version": "0.102.26",
3
+ "version": "0.102.27",
4
4
  "description": "js and ts infra",
5
5
  "keywords": [
6
6
  "TacB0sS",
@@ -0,0 +1,14 @@
1
+ export declare type TestCase<Input, Result> = {
2
+ expected?: Result;
3
+ input: Input;
4
+ };
5
+ export declare type TestProcessor<T extends TestCase<any, any>> = (input: T['input']) => Promise<T['expected']>;
6
+ export declare type TestSuit<Model extends TestCase<any, any>> = {
7
+ key: string;
8
+ label: string;
9
+ models: Model[];
10
+ processor: TestProcessor<Model>;
11
+ };
12
+ export declare function runTestSuits(testSuits: TestSuit<any>[]): Promise<void>;
13
+ export declare function runTestSuit<Model extends TestCase<any, any>>(testSuit: TestSuit<Model>): Promise<void>;
14
+ export declare function assertNoTestErrors(): void;
@@ -55,6 +55,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
55
55
  Object.defineProperty(exports, "__esModule", { value: true });
56
56
  exports.assertNoTestErrors = exports.runTestSuit = exports.runTestSuits = void 0;
57
57
  var exceptions_1 = require("../core/exceptions");
58
+ var object_tools_1 = require("../utils/object-tools");
58
59
  var testResults = {};
59
60
  function runTestSuits(testSuits) {
60
61
  return __awaiter(this, void 0, void 0, function () {
@@ -82,7 +83,7 @@ function runTestSuits(testSuits) {
82
83
  exports.runTestSuits = runTestSuits;
83
84
  function runTestSuit(testSuit) {
84
85
  return __awaiter(this, void 0, void 0, function () {
85
- var report, _i, _a, model, result;
86
+ var report, _i, _a, model, result, e_1;
86
87
  return __generator(this, function (_b) {
87
88
  switch (_b.label) {
88
89
  case 0:
@@ -96,21 +97,30 @@ function runTestSuit(testSuit) {
96
97
  _i = 0, _a = testSuit.models;
97
98
  _b.label = 1;
98
99
  case 1:
99
- if (!(_i < _a.length)) return [3 /*break*/, 4];
100
+ if (!(_i < _a.length)) return [3 /*break*/, 6];
100
101
  model = _a[_i];
101
- return [4 /*yield*/, testSuit.processor(model.input)];
102
+ result = void 0;
103
+ _b.label = 2;
102
104
  case 2:
105
+ _b.trys.push([2, 4, , 5]);
106
+ result = undefined;
107
+ return [4 /*yield*/, testSuit.processor(model.input)];
108
+ case 3:
103
109
  result = _b.sent();
104
- if (model.expected === undefined || model.expected === result) {
110
+ if (model.expected === undefined || (0, object_tools_1.compare)(model.expected, result)) {
105
111
  report.success++;
106
- return [3 /*break*/, 3];
112
+ return [3 /*break*/, 5];
107
113
  }
108
- report.failed.push(new exceptions_1.Exception("Error in test #".concat(testSuit.models.indexOf(model), " input: ").concat(JSON.stringify(model.input), "\n -- Expected: ").concat(model.expected, "\n -- Actual: ").concat(result)));
109
- _b.label = 3;
110
- case 3:
114
+ report.failed.push(new exceptions_1.Exception("Error in test #".concat(testSuit.models.indexOf(model), " input: ").concat(JSON.stringify(model.input), "\n -- Expected: ").concat(model.expected, "\n -- Actual: ").concat(typeof result === 'object' ? JSON.stringify(result) : result)));
115
+ return [3 /*break*/, 5];
116
+ case 4:
117
+ e_1 = _b.sent();
118
+ report.failed.push(new exceptions_1.Exception("Error in test #".concat(testSuit.models.indexOf(model), " input: ").concat(JSON.stringify(model.input)), e_1));
119
+ return [3 /*break*/, 5];
120
+ case 5:
111
121
  _i++;
112
122
  return [3 /*break*/, 1];
113
- case 4: return [2 /*return*/];
123
+ case 6: return [2 /*return*/];
114
124
  }
115
125
  });
116
126
  });
@@ -119,9 +129,9 @@ exports.runTestSuit = runTestSuit;
119
129
  function assertNoTestErrors() {
120
130
  var totalErrors = 0;
121
131
  console.log();
122
- console.log("+-------------------------------+");
123
- console.log("| RESULTS |");
124
- console.log("+-------------------------------+");
132
+ console.log('+-------------------------------+');
133
+ console.log('| RESULTS |');
134
+ console.log('+-------------------------------+');
125
135
  Object.keys(testResults).forEach(function (key, index) {
126
136
  var result = testResults[key];
127
137
  console.log();
@@ -131,10 +141,14 @@ function assertNoTestErrors() {
131
141
  return;
132
142
  totalErrors += result.failed.length;
133
143
  console.log(" Errors: ".concat(result.failed.length));
134
- result.failed.forEach(function (error) { return console.log(" ".concat(error.message)); });
144
+ result.failed.forEach(function (error) {
145
+ console.log(" ".concat(error.message));
146
+ if (error.cause)
147
+ console.log(" ".concat(error.cause.message));
148
+ });
135
149
  });
136
150
  if (totalErrors > 0)
137
151
  process.exit(2);
138
152
  }
139
153
  exports.assertNoTestErrors = assertNoTestErrors;
140
- //# sourceMappingURL=test-model.js.map
154
+ //# sourceMappingURL=test-case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-case.js","sourceRoot":"","sources":["../../src/main/testing/test-case.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export declare function addItemToArrayAtIndex<T>(array: T[], item: T, index: num
7
7
  export declare function toggleElementInArray<T>(array: T[], item: T): T[];
8
8
  export declare function filterAsync<T>(arr: T[], filter: (parameter: T) => Promise<boolean>): Promise<T[]>;
9
9
  export declare function findDuplicates<T>(array1: T[], array2: T[]): T[];
10
- export declare function filterDuplicates<T>(array: T[]): T[];
10
+ export declare function filterDuplicates<T>(source: T[], mapper?: (item: T) => any): T[];
11
11
  export declare function filterInstances<T>(array?: (T | undefined | null | void)[]): T[];
12
12
  export declare function arrayToMap<T>(array: T[], getKey: (item: T, index: number) => string | number, map?: {
13
13
  [k: string]: T;
@@ -112,8 +112,13 @@ function findDuplicates(array1, array2) {
112
112
  return array1.filter(function (val) { return array2.indexOf(val) !== -1; });
113
113
  }
114
114
  exports.findDuplicates = findDuplicates;
115
- function filterDuplicates(array) {
116
- return Array.from(new Set(array));
115
+ var defaultMapper = function (item) { return item; };
116
+ function filterDuplicates(source, mapper) {
117
+ if (mapper === void 0) { mapper = defaultMapper; }
118
+ if (defaultMapper === mapper)
119
+ return Array.from(new Set(source));
120
+ var uniqueKeys = Array.from(new Set(source.map(mapper)));
121
+ return source.filter(function (item) { return uniqueKeys.includes(mapper(item)); });
117
122
  }
118
123
  exports.filterDuplicates = filterDuplicates;
119
124
  function filterInstances(array) {
@@ -1 +1 @@
1
- {"version":3,"file":"array-tools.js","sourceRoot":"","sources":["../../src/main/utils/array-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array-tools.js","sourceRoot":"","sources":["../../src/main/utils/array-tools.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,23 @@
1
1
  import { CustomException } from '../core/exceptions';
2
2
  import { ArrayType, AuditBy, RangeTimestamp, TS_Object } from '../utils/types';
3
3
  export declare type ValidatorTypeResolver<K> = K extends any[] ? Validator<K> : K extends TS_Object ? TypeValidator<K> | Validator<K> : Validator<K>;
4
- export declare type Validator<P> = undefined | ((path: string, p?: P) => void);
4
+ declare type ValidatorImpl<P> = (p?: P) => (InvalidResult<P> | undefined);
5
+ export declare type Validator<P> = undefined | ValidatorImpl<P> | ValidatorImpl<P>[];
5
6
  export declare type TypeValidator<T extends TS_Object> = {
6
7
  [P in keyof T]: ValidatorTypeResolver<T[P]>;
7
8
  };
9
+ export declare type InvalidResultObject<T extends any> = {
10
+ [K in keyof T]?: InvalidResult<T[K]>;
11
+ };
12
+ export declare type InvalidResultArray<T extends any> = InvalidResult<T> | undefined;
13
+ export declare type InvalidResult<T extends any> = T extends object ? InvalidResultObject<T> | string : T extends (infer I)[] ? (InvalidResultArray<I>[]) | string : string;
8
14
  export declare class ValidationException extends CustomException {
9
- path: string;
10
15
  input?: string;
11
- constructor(debugMessage: string, path: string, input?: any, e?: Error);
16
+ result?: InvalidResult<any>;
17
+ constructor(debugMessage: string, input?: any, result?: InvalidResult<any>, e?: Error);
12
18
  }
13
- export declare const assertValidateMandatoryProperty: (mandatory: boolean, path: string, input?: any) => void;
14
- export declare const tsValidateExists: (mandatory?: boolean) => Validator<any>;
15
- export declare const tsValidateObjectValues: <V, T = {
16
- [k: string]: V;
17
- }>(validator: ValidatorTypeResolver<V>, mandatory?: boolean) => Validator<T>;
19
+ export declare const assertValidateMandatoryProperty: (mandatory: boolean, input?: any) => void;
20
+ export declare const tsValidateExists: (mandatory?: boolean) => ValidatorImpl<any>;
18
21
  export declare const tsValidateArray: <T extends any[], I = ArrayType<T>>(validator: ValidatorTypeResolver<I>, mandatory?: boolean) => Validator<I[]>;
19
22
  export declare const tsValidateString: (length?: number, mandatory?: boolean) => Validator<string>;
20
23
  export declare const tsValidateMD5: (mandatory?: boolean) => Validator<string>;
@@ -23,7 +26,9 @@ export declare const tsValidateNumber: (mandatory?: boolean) => Validator<number
23
26
  export declare const tsValidateBoolean: (mandatory?: boolean) => Validator<boolean>;
24
27
  export declare const tsValidateValue: (values: string[], mandatory?: boolean) => Validator<string>;
25
28
  export declare const tsValidateRange: (ranges: [number, number][], mandatory?: boolean) => Validator<number>;
26
- export declare const tsValidate: <T extends unknown>(instance: T | undefined, _validator: ValidatorTypeResolver<T>, path?: string, mandatory?: boolean | Partial<T>) => void;
27
- export declare const tsValidateObject: <T>(__validator: TypeValidator<object>, instance: T, path?: string) => void;
29
+ export declare const tsValidate: <T extends unknown>(instance: T | undefined, _validator: ValidatorTypeResolver<T>, strict?: boolean) => any;
30
+ export declare const tsValidateResult: <T extends unknown>(instance: T | undefined, _validator: ValidatorTypeResolver<T>, key?: keyof T | undefined) => any;
31
+ export declare const tsValidateObject: <T>(__validator: TypeValidator<object>, instance: T, path?: string) => InvalidResultObject<T> | undefined;
28
32
  export declare const tsValidateTimestamp: (interval?: number, mandatory?: boolean) => Validator<number>;
29
- export declare const tsValidateAudit: (range?: RangeTimestamp) => (_path: string, audit?: AuditBy) => void;
33
+ export declare const tsValidateAudit: (range?: RangeTimestamp) => (audit?: AuditBy) => any;
34
+ export {};
@@ -32,85 +32,80 @@ var __extends = (this && this.__extends) || (function () {
32
32
  };
33
33
  })();
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.tsValidateAudit = exports.tsValidateTimestamp = exports.tsValidateObject = exports.tsValidate = exports.tsValidateRange = exports.tsValidateValue = exports.tsValidateBoolean = exports.tsValidateNumber = exports.tsValidateRegexp = exports.tsValidateMD5 = exports.tsValidateString = exports.tsValidateArray = exports.tsValidateObjectValues = exports.tsValidateExists = exports.assertValidateMandatoryProperty = exports.ValidationException = void 0;
35
+ exports.tsValidateAudit = exports.tsValidateTimestamp = exports.tsValidateObject = exports.tsValidateResult = exports.tsValidate = exports.tsValidateRange = exports.tsValidateValue = exports.tsValidateBoolean = exports.tsValidateNumber = exports.tsValidateRegexp = exports.tsValidateMD5 = exports.tsValidateString = exports.tsValidateArray = exports.tsValidateExists = exports.assertValidateMandatoryProperty = exports.ValidationException = void 0;
36
36
  var exceptions_1 = require("../core/exceptions");
37
37
  var tools_1 = require("../utils/tools");
38
38
  var object_tools_1 = require("../utils/object-tools");
39
39
  var __1 = require("..");
40
40
  var ValidationException = /** @class */ (function (_super) {
41
41
  __extends(ValidationException, _super);
42
- function ValidationException(debugMessage, path, input, e) {
42
+ function ValidationException(debugMessage, input, result, e) {
43
43
  var _this = _super.call(this, ValidationException, debugMessage, e) || this;
44
- _this.path = path;
44
+ _this.result = result;
45
45
  _this.input = input;
46
46
  return _this;
47
47
  }
48
48
  return ValidationException;
49
49
  }(exceptions_1.CustomException));
50
50
  exports.ValidationException = ValidationException;
51
- var assertValidateMandatoryProperty = function (mandatory, path, input) {
52
- if (input !== undefined && input !== null)
53
- return;
54
- if (mandatory)
55
- throw new ValidationException("Missing mandatory field: ".concat(path, "\n"), path, input);
51
+ var CONST_NO_ERROR = '###';
52
+ var assertValidateMandatoryProperty = function (mandatory, input) {
56
53
  };
57
54
  exports.assertValidateMandatoryProperty = assertValidateMandatoryProperty;
58
55
  var tsValidateExists = function (mandatory) {
59
56
  if (mandatory === void 0) { mandatory = true; }
60
- return function (path, input) {
61
- (0, exports.assertValidateMandatoryProperty)(mandatory, path, input);
62
- };
63
- };
64
- exports.tsValidateExists = tsValidateExists;
65
- var tsValidateObjectValues = function (validator, mandatory) {
66
- if (mandatory === void 0) { mandatory = true; }
67
- return function (path, input) {
68
- (0, exports.assertValidateMandatoryProperty)(mandatory, path, input);
69
- if (!input)
57
+ return function (input) {
58
+ if (input !== undefined && input !== null)
70
59
  return;
71
- for (var _i = 0, _a = (0, object_tools_1._keys)(input); _i < _a.length; _i++) {
72
- var key = _a[_i];
73
- var inputValue = input[key];
74
- if (typeof inputValue === 'object') {
75
- var objectValidator = (0, exports.tsValidateObjectValues)(validator, mandatory);
76
- if (!objectValidator)
77
- return;
78
- return objectValidator("".concat(path, "/").concat(String(key)), inputValue);
79
- }
80
- (0, exports.tsValidate)(inputValue, validator, "".concat(path, "/").concat(String(key)));
81
- }
60
+ if (mandatory)
61
+ return 'Missing mandatory field';
62
+ return CONST_NO_ERROR;
82
63
  };
83
64
  };
84
- exports.tsValidateObjectValues = tsValidateObjectValues;
65
+ exports.tsValidateExists = tsValidateExists;
66
+ //
67
+ // export const tsValidateObjectValues = <V, T extends { [k: string]: V } = { [k: string]: V }>(validator: ValidatorTypeResolver<V>, mandatory = true): Validator<T> =>
68
+ // [tsValidateExists(mandatory), (input?: T) => {
69
+ // for (const key of _keys(input!)) {
70
+ // // Validate keys too
71
+ // const inputValue = input![key];
72
+ // if (typeof inputValue === 'object') {
73
+ // // not 100% sure what is going on here why not tsValidateObject(validator[key])
74
+ // const objectValidator = tsValidateObjectValues(validator, mandatory);
75
+ // if (!objectValidator)
76
+ // continue;
77
+ //
78
+ // return tsValidateResult(inputValue as { [k: string]: V }, objectValidator);
79
+ // }
80
+ //
81
+ // return tsValidateResult(inputValue as unknown as V, validator);
82
+ // }
83
+ // }];
85
84
  var tsValidateArray = function (validator, mandatory) {
86
85
  if (mandatory === void 0) { mandatory = true; }
87
- return function (path, input) {
88
- (0, exports.assertValidateMandatoryProperty)(mandatory, path, input);
89
- if (!input)
90
- return;
91
- var _input = input;
92
- for (var i = 0; i < _input.length; i++) {
93
- (0, exports.tsValidate)(_input[i], validator, "".concat(path, "/").concat(i));
94
- }
95
- };
86
+ return [(0, exports.tsValidateExists)(mandatory), function (input) {
87
+ var results = [];
88
+ var _input = input;
89
+ for (var i = 0; i < _input.length; i++) {
90
+ results[i] = (0, exports.tsValidateResult)(_input[i], validator);
91
+ }
92
+ return (0, __1.filterInstances)(results).length !== 0 ? results : undefined;
93
+ }];
96
94
  };
97
95
  exports.tsValidateArray = tsValidateArray;
98
96
  var tsValidateString = function (length, mandatory) {
99
97
  if (length === void 0) { length = -1; }
100
98
  if (mandatory === void 0) { mandatory = true; }
101
- return function (path, input) {
102
- (0, exports.assertValidateMandatoryProperty)(mandatory, path, input);
103
- if (!input)
104
- return;
105
- // noinspection SuspiciousTypeOfGuard
106
- if (typeof input !== 'string')
107
- throw new ValidationException("input is not a string", path, input);
108
- if (length === -1)
109
- return;
110
- if (input.length <= length)
111
- return;
112
- throw new ValidationException("input is longer than ".concat(length), path, input);
113
- };
99
+ return [(0, exports.tsValidateExists)(mandatory), function (input) {
100
+ // noinspection SuspiciousTypeOfGuard
101
+ if (typeof input !== 'string')
102
+ return "input is not a string";
103
+ if (length === -1)
104
+ return;
105
+ if (input.length <= length)
106
+ return;
107
+ return "input is longer than ".concat(length);
108
+ }];
114
109
  };
115
110
  exports.tsValidateString = tsValidateString;
116
111
  var tsValidateMD5 = function (mandatory) {
@@ -120,124 +115,122 @@ var tsValidateMD5 = function (mandatory) {
120
115
  exports.tsValidateMD5 = tsValidateMD5;
121
116
  var tsValidateRegexp = function (regexp, mandatory) {
122
117
  if (mandatory === void 0) { mandatory = true; }
123
- return function (path, input) {
124
- (0, exports.assertValidateMandatoryProperty)(mandatory, path, input);
125
- if (input === undefined)
126
- return;
127
- // console.log({path, input, regexp});
128
- if (regexp.test(input))
129
- return;
130
- throw new ValidationException("Input does not match regexp for path(".concat(path, "):\n input: ").concat(input, "\n regexp: ").concat(regexp, "\n"), path, input);
131
- };
118
+ return [(0, exports.tsValidateExists)(mandatory), function (input) {
119
+ // console.log({input, regexp});
120
+ if (regexp.test(input))
121
+ return;
122
+ return "Input does not match regexp:\n input: ".concat(input, "\n regexp: ").concat(regexp, "\n");
123
+ }];
132
124
  };
133
125
  exports.tsValidateRegexp = tsValidateRegexp;
134
126
  var tsValidateNumber = function (mandatory) {
135
127
  if (mandatory === void 0) { mandatory = true; }
136
- return function (path, input) {
137
- (0, exports.assertValidateMandatoryProperty)(mandatory, path, input);
138
- if (input === undefined)
139
- return;
140
- // noinspection SuspiciousTypeOfGuard
141
- if (typeof input === 'number')
142
- return;
143
- throw new ValidationException("Input is not a number for path(".concat(path, ")! \nvalue: ").concat(input, "\ntype: ").concat(typeof input), path, input);
144
- };
128
+ return [(0, exports.tsValidateExists)(mandatory), function (input) {
129
+ // noinspection SuspiciousTypeOfGuard
130
+ if (typeof input === 'number')
131
+ return;
132
+ return "Input is not a number! \nvalue: ".concat(input, "\ntype: ").concat(typeof input);
133
+ }];
145
134
  };
146
135
  exports.tsValidateNumber = tsValidateNumber;
147
136
  var tsValidateBoolean = function (mandatory) {
148
137
  if (mandatory === void 0) { mandatory = true; }
149
- return function (path, input) {
150
- (0, exports.assertValidateMandatoryProperty)(mandatory, path, input);
151
- if (input === undefined)
152
- return;
153
- // noinspection SuspiciousTypeOfGuard
154
- if (typeof input === 'boolean')
155
- return;
156
- throw new ValidationException("input is not a boolean! \nvalue: ".concat(input, "\ntype: ").concat(typeof input), path, input);
157
- };
138
+ return [(0, exports.tsValidateExists)(mandatory), function (input) {
139
+ // noinspection SuspiciousTypeOfGuard
140
+ if (typeof input === 'boolean')
141
+ return;
142
+ return "input is not a boolean! \nvalue: ".concat(input, "\ntype: ").concat(typeof input);
143
+ }];
158
144
  };
159
145
  exports.tsValidateBoolean = tsValidateBoolean;
160
146
  var tsValidateValue = function (values, mandatory) {
161
147
  if (mandatory === void 0) { mandatory = true; }
162
- return function (path, input) {
163
- (0, exports.assertValidateMandatoryProperty)(mandatory, path, input);
164
- if (!input)
165
- return;
166
- if (values.includes(input))
167
- return;
168
- throw new ValidationException("Input is not valid:\n input: ".concat(input, "\n options: ").concat((0, tools_1.__stringify)(values), "\n"), path, input);
169
- };
148
+ return [(0, exports.tsValidateExists)(mandatory), function (input) {
149
+ if (values.includes(input))
150
+ return;
151
+ return "Input is not valid:\n input: ".concat(input, "\n options: ").concat((0, tools_1.__stringify)(values), "\n");
152
+ }];
170
153
  };
171
154
  exports.tsValidateValue = tsValidateValue;
172
155
  var tsValidateRange = function (ranges, mandatory) {
173
156
  if (mandatory === void 0) { mandatory = true; }
174
- return function (path, input) {
175
- (0, exports.assertValidateMandatoryProperty)(mandatory, path, input);
176
- if (!input)
177
- return;
178
- for (var _i = 0, ranges_1 = ranges; _i < ranges_1.length; _i++) {
179
- var range = ranges_1[_i];
180
- if (range[0] <= input && input <= range[1])
181
- return;
182
- }
183
- throw new ValidationException("Input is not valid:\n input: ".concat(input, "\n Expected Range: ").concat((0, tools_1.__stringify)(ranges), "\n"), path, input);
184
- };
157
+ return [(0, exports.tsValidateExists)(mandatory), function (input) {
158
+ for (var _i = 0, ranges_1 = ranges; _i < ranges_1.length; _i++) {
159
+ var range = ranges_1[_i];
160
+ if (range[0] <= input && input <= range[1])
161
+ return;
162
+ }
163
+ return "Input is not valid:\n input: ".concat(input, "\n Expected Range: ").concat((0, tools_1.__stringify)(ranges), "\n");
164
+ }];
185
165
  };
186
166
  exports.tsValidateRange = tsValidateRange;
187
- var tsValidate = function (instance, _validator, path, mandatory) {
188
- if (path === void 0) { path = ''; }
189
- if (mandatory === void 0) { mandatory = {}; }
167
+ var tsValidate = function (instance, _validator, strict) {
168
+ if (strict === void 0) { strict = true; }
169
+ var results = (0, exports.tsValidateResult)(instance, _validator);
170
+ if (results && strict) {
171
+ console.error(results);
172
+ throw new ValidationException("Error validating object: ", instance, results);
173
+ }
174
+ return results;
175
+ };
176
+ exports.tsValidate = tsValidate;
177
+ var tsValidateResult = function (instance, _validator, key) {
190
178
  if (!_validator)
191
179
  return;
192
- if (typeof _validator === 'function') {
193
- var validator = _validator;
194
- if (!validator)
195
- return;
196
- return validator("".concat(path), instance);
180
+ var validator = typeof _validator === 'function' ? [_validator] : _validator;
181
+ if (Array.isArray(validator)) {
182
+ var result = validator.reduce(function (result, __validator) { return result === CONST_NO_ERROR ? result : result || __validator(instance); }, undefined);
183
+ return result !== CONST_NO_ERROR ? result : undefined;
197
184
  }
198
- if (typeof _validator === 'object') {
199
- if (!instance && _validator)
200
- throw new exceptions_1.BadImplementationException("Unexpect object at '".concat(path, "'\nif you want to ignore the validation of this object,\n add the following to your validator:\n {\n ...\n ").concat(path, ": undefined\n ...\n}\n"));
201
- var __validator = _validator;
202
- (0, exports.tsValidateObject)(__validator, instance, path);
185
+ if (typeof validator === 'object') {
186
+ if (!instance && validator)
187
+ return "Unexpect object\nif you want to ignore the validation of this object,\n add the following to your validator:\n {\n ...\n ".concat(String(key), ": undefined\n ...\n}\n");
188
+ var __validator = validator;
189
+ return (0, exports.tsValidateObject)(__validator, instance);
203
190
  }
204
191
  };
205
- exports.tsValidate = tsValidate;
192
+ exports.tsValidateResult = tsValidateResult;
206
193
  var tsValidateObject = function (__validator, instance, path) {
207
194
  if (path === void 0) { path = ''; }
208
195
  var validatorKeys = (0, object_tools_1._keys)(__validator);
209
196
  var instanceKeys = Object.keys(instance);
197
+ var result = {};
210
198
  for (var _i = 0, instanceKeys_1 = instanceKeys; _i < instanceKeys_1.length; _i++) {
211
199
  var key = instanceKeys_1[_i];
212
200
  // @ts-ignore
213
201
  if (!validatorKeys.includes(key))
214
- throw new exceptions_1.BadImplementationException("Unexpected key '".concat(path).concat(key, "'.\nIf you want to ignore the validation of this property,\n add the following to your validator:\n {\n ...\n ").concat(key, ": undefined\n ...\n}\n"));
202
+ // @ts-ignore
203
+ result[key] = "Unexpected key '".concat(path).concat(key, "'.\nIf you want to ignore the validation of this property,\n add the following to your validator:\n {\n ...\n ").concat(key, ": undefined\n ...\n}\n");
215
204
  }
216
205
  for (var _a = 0, validatorKeys_1 = validatorKeys; _a < validatorKeys_1.length; _a++) {
217
206
  var key = validatorKeys_1[_a];
218
207
  var value = instance[key];
219
208
  var validator = __validator[key];
220
- (0, exports.tsValidate)(value, validator, "".concat(path, "/").concat(key));
209
+ var propsResult = (0, exports.tsValidateResult)(value, validator, key);
210
+ if (propsResult && propsResult !== CONST_NO_ERROR)
211
+ result[key] = propsResult;
221
212
  }
213
+ if ((0, object_tools_1._keys)(result).length === 0)
214
+ return;
215
+ return result;
222
216
  };
223
217
  exports.tsValidateObject = tsValidateObject;
224
218
  var tsValidateTimestamp = function (interval, mandatory) {
225
219
  if (mandatory === void 0) { mandatory = true; }
226
- return function (path, input) {
227
- (0, exports.assertValidateMandatoryProperty)(mandatory, path, input);
228
- if (input === undefined)
229
- return;
230
- var now = (0, __1.currentTimeMillis)();
231
- var minTimestamp = now - (interval || now);
232
- if (minTimestamp <= input && input <= now)
233
- return;
234
- throw new ValidationException("Input is not valid:\n input: ".concat(input, "\n Expected Interval: ").concat(minTimestamp, " - ").concat(now, "\n"), path, input);
235
- };
220
+ return [(0, exports.tsValidateExists)(mandatory), function (input) {
221
+ var now = (0, __1.currentTimeMillis)();
222
+ var minTimestamp = now - (interval || now);
223
+ if (minTimestamp <= input && input <= now)
224
+ return;
225
+ return "Input is not valid:\n input: ".concat(input, "\n Expected Interval: ").concat(minTimestamp, " - ").concat(now, "\n");
226
+ }];
236
227
  };
237
228
  exports.tsValidateTimestamp = tsValidateTimestamp;
238
- var tsValidateAudit = function (range) { return function (_path, audit) {
239
- var _a, _b;
240
- (_a = (0, exports.tsValidateRange)([[0, Number.MAX_VALUE]], true)) === null || _a === void 0 ? void 0 : _a(_path, (_b = audit === null || audit === void 0 ? void 0 : audit.auditAt) === null || _b === void 0 ? void 0 : _b.timestamp);
241
- }; };
229
+ var tsValidateAudit = function (range) {
230
+ return function (audit) {
231
+ var _a;
232
+ return (0, exports.tsValidate)((_a = audit === null || audit === void 0 ? void 0 : audit.auditAt) === null || _a === void 0 ? void 0 : _a.timestamp, (0, exports.tsValidateRange)([[0, Number.MAX_VALUE]]));
233
+ };
234
+ };
242
235
  exports.tsValidateAudit = tsValidateAudit;
243
236
  //# sourceMappingURL=validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/main/validator/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/main/validator/validator.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- declare type InferInput<Model> = Model extends TestModel<infer I, any> ? I : Model;
2
- declare type InferResult<Model> = Model extends TestModel<any, infer R> ? R : void;
3
- export declare type TestModel<Input, Result = void> = {
4
- expected?: Result;
5
- input: Input;
6
- };
7
- export declare type TestSuit<Model extends TestModel<Input, Result>, Input = InferInput<Model>, Result = InferResult<Model>> = {
8
- key: string;
9
- label: string;
10
- models: TestModel<Input, Result>[];
11
- processor: (model: Input) => Promise<Result>;
12
- };
13
- export declare function runTestSuits(testSuits: TestSuit<any, any, any>[]): Promise<void>;
14
- export declare function runTestSuit<Model extends TestModel<Input, Result>, Input = InferInput<Model>, Result = InferResult<Model>>(testSuit: TestSuit<Model, Input, Result>): Promise<void>;
15
- export declare function assertNoTestErrors(): void;
16
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-model.js","sourceRoot":"","sources":["../../src/main/testing/test-model.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAA6C;AAuB7C,IAAM,WAAW,GAAoC,EAAE,CAAC;AAExD,SAAsB,YAAY,CAAC,SAAoC;;;;;;0BACtC,EAAT,uBAAS;;;yBAAT,CAAA,uBAAS,CAAA;oBAArB,QAAQ;oBAClB,qBAAM,WAAW,CAAC,QAAQ,CAAC,EAAA;;oBAA3B,SAA2B,CAAC;;;oBADN,IAAS,CAAA;;;;;;CAGhC;AAJD,oCAIC;AAED,SAAsB,WAAW,CAAiG,QAAwC;;;;;;oBACnK,MAAM,GAAmB;wBAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,OAAO,EAAE,CAAC;wBACV,MAAM,EAAE,EAAE;qBACV,CAAC;oBAEF,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,oBAAa,QAAQ,CAAC,KAAK,CAAE,CAAC,CAAC;0BAER,EAAf,KAAA,QAAQ,CAAC,MAAM;;;yBAAf,CAAA,cAAe,CAAA;oBAAxB,KAAK;oBACA,qBAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAA;;oBAA9C,MAAM,GAAG,SAAqC;oBACpD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE;wBAC9D,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjB,wBAAS;qBACT;oBAED,MAAM,CAAC,MAAM,CAAC,IAAI,CACjB,IAAI,sBAAS,CAAC,yBAAkB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAW,IAAI,CAAC,SAAS,CACtF,KAAK,CAAC,KAAK,CAAC,qCAA2B,KAAK,CAAC,QAAQ,qCAA2B,MAAM,CAAE,CAAC,CAAC,CAAC;;;oBAT1E,IAAe,CAAA;;;;;;CAWnC;AArBD,kCAqBC;AAGD,SAAgB,kBAAkB;IACjC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,KAAK;QAC3C,IAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,aAAM,MAAM,CAAC,KAAK,CAAE,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,wBAAiB,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAC7B,OAAO;QAER,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,uBAAgB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAA,KAAK,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,iBAAU,KAAK,CAAC,OAAO,CAAE,CAAC,EAAtC,CAAsC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,IAAI,WAAW,GAAG,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AArBD,gDAqBC"}