topkat-utils 1.1.7 → 1.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/dist/src/loop-utils.d.ts +5 -2
- package/dist/src/loop-utils.js +14 -10
- package/dist/src/loop-utils.js.map +1 -1
- package/dist/src/validation-utils.js +4 -4
- package/dist/src/validation-utils.js.map +1 -1
- package/package.json +1 -1
- package/src/loop-utils.ts +11 -10
- package/src/validation-utils.ts +4 -4
package/CHANGELOG.md
CHANGED
package/dist/src/loop-utils.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ import { ObjectGeneric } from "./private/types";
|
|
|
2
2
|
export declare function forI<T extends any[] | any>(nbIterations: number, callback: (number: number, previousValue: any, arrayOfPreviousValues: any[]) => T): T[];
|
|
3
3
|
export declare function forIasync<T extends any[] | any>(nbIterations: number, callback: (number: any) => T): Promise<T[]>;
|
|
4
4
|
export declare type RecursiveCallback = (item: any, addr: string, lastElementKey: string | number, parent: ObjectGeneric | any[]) => false | any;
|
|
5
|
+
export declare type RecursiveConfig = {
|
|
6
|
+
disableCircularDependencyRemoval?: boolean;
|
|
7
|
+
};
|
|
5
8
|
/**
|
|
6
9
|
* @param {any} item the first array or object or whatever you want to recursively browse
|
|
7
10
|
* @param {function} callback the callback you want to apply on items including the main one
|
|
@@ -17,7 +20,7 @@ export declare type RecursiveCallback = (item: any, addr: string, lastElementKey
|
|
|
17
20
|
* NOTE: will remove circular references
|
|
18
21
|
* /!\ check return values
|
|
19
22
|
*/
|
|
20
|
-
export declare function recursiveGenericFunction(item: ObjectGeneric | any[], callback: RecursiveCallback, addr$?: string, lastElementKey?: string | number, parent?: any, techFieldToAvoidCircularDependency?: any[]): Promise<any[] | ObjectGeneric>;
|
|
23
|
+
export declare function recursiveGenericFunction(item: ObjectGeneric | any[], callback: RecursiveCallback, config?: RecursiveConfig, addr$?: string, lastElementKey?: string | number, parent?: any, techFieldToAvoidCircularDependency?: any[]): Promise<any[] | ObjectGeneric>;
|
|
21
24
|
/**
|
|
22
25
|
* @param {any} item the first array or object or whatever you want to recursively browse
|
|
23
26
|
* @param {function} callback the callback you want to apply on items including the main one
|
|
@@ -34,4 +37,4 @@ export declare function recursiveGenericFunction(item: ObjectGeneric | any[], ca
|
|
|
34
37
|
* NOTE: will remove circular references
|
|
35
38
|
* /!\ check return values
|
|
36
39
|
*/
|
|
37
|
-
export declare function recursiveGenericFunctionSync(item: ObjectGeneric | any[], callback: RecursiveCallback, addr$?: string, lastElementKey?: string | number, parent?: any, techFieldToAvoidCircularDependency?: any[]): any[] | ObjectGeneric;
|
|
40
|
+
export declare function recursiveGenericFunctionSync(item: ObjectGeneric | any[], callback: RecursiveCallback, config?: RecursiveConfig, addr$?: string, lastElementKey?: string | number, parent?: any, techFieldToAvoidCircularDependency?: any[]): any[] | ObjectGeneric;
|
package/dist/src/loop-utils.js
CHANGED
|
@@ -35,19 +35,21 @@ exports.forIasync = forIasync;
|
|
|
35
35
|
* NOTE: will remove circular references
|
|
36
36
|
* /!\ check return values
|
|
37
37
|
*/
|
|
38
|
-
async function recursiveGenericFunction(item, callback, addr$ = '', lastElementKey = '', parent, techFieldToAvoidCircularDependency = []) {
|
|
38
|
+
async function recursiveGenericFunction(item, callback, config, addr$ = '', lastElementKey = '', parent, techFieldToAvoidCircularDependency = []) {
|
|
39
39
|
(0, error_utils_1.err500IfNotSet)({ callback });
|
|
40
40
|
if (!techFieldToAvoidCircularDependency.includes(item)) {
|
|
41
41
|
const result = addr$ === '' ? true : await callback(item, addr$, lastElementKey, parent);
|
|
42
42
|
if (result !== false) {
|
|
43
43
|
const addr = addr$ ? addr$ + '.' : '';
|
|
44
44
|
if (Array.isArray(item)) {
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
if (config.disableCircularDependencyRemoval !== true)
|
|
46
|
+
techFieldToAvoidCircularDependency.push(item);
|
|
47
|
+
await Promise.all(item.map((e, i) => recursiveGenericFunction(e, callback, config, addr + '[' + i + ']', i, item, techFieldToAvoidCircularDependency)));
|
|
47
48
|
}
|
|
48
49
|
else if ((0, is_object_1.isObject)(item)) {
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
if (config.disableCircularDependencyRemoval !== true)
|
|
51
|
+
techFieldToAvoidCircularDependency.push(item);
|
|
52
|
+
await Promise.all(Object.entries(item).map(([key, val]) => recursiveGenericFunction(val, callback, config, addr + key.replace(/\./g, '%'), key, item, techFieldToAvoidCircularDependency)));
|
|
51
53
|
}
|
|
52
54
|
}
|
|
53
55
|
}
|
|
@@ -70,19 +72,21 @@ exports.recursiveGenericFunction = recursiveGenericFunction;
|
|
|
70
72
|
* NOTE: will remove circular references
|
|
71
73
|
* /!\ check return values
|
|
72
74
|
*/
|
|
73
|
-
function recursiveGenericFunctionSync(item, callback, addr$ = '', lastElementKey = '', parent, techFieldToAvoidCircularDependency = []) {
|
|
75
|
+
function recursiveGenericFunctionSync(item, callback, config, addr$ = '', lastElementKey = '', parent, techFieldToAvoidCircularDependency = []) {
|
|
74
76
|
(0, error_utils_1.err500IfNotSet)({ callback });
|
|
75
77
|
if (!techFieldToAvoidCircularDependency.includes(item)) {
|
|
76
78
|
const result = addr$ === '' ? true : callback(item, addr$, lastElementKey, parent);
|
|
77
79
|
if (result !== false) {
|
|
78
80
|
const addr = addr$ ? addr$ + '.' : '';
|
|
79
81
|
if (Array.isArray(item)) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
+
if (config.disableCircularDependencyRemoval !== true)
|
|
83
|
+
techFieldToAvoidCircularDependency.push(item); // do not up one level
|
|
84
|
+
item.forEach((e, i) => recursiveGenericFunctionSync(e, callback, config, addr + '[' + i + ']', i, item, techFieldToAvoidCircularDependency));
|
|
82
85
|
}
|
|
83
86
|
else if ((0, is_object_1.isObject)(item)) {
|
|
84
|
-
|
|
85
|
-
|
|
87
|
+
if (config.disableCircularDependencyRemoval !== true)
|
|
88
|
+
techFieldToAvoidCircularDependency.push(item);
|
|
89
|
+
Object.entries(item).forEach(([key, val]) => recursiveGenericFunctionSync(val, callback, config, addr + key.replace(/\./g, '%'), key, item, techFieldToAvoidCircularDependency));
|
|
86
90
|
}
|
|
87
91
|
}
|
|
88
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-utils.js","sourceRoot":"","sources":["../../src/loop-utils.ts"],"names":[],"mappings":";;;AAIA,+CAA8C;AAC9C,2CAAsC;AAEtC,SAAgB,IAAI,CAAwB,YAAoB,EAAE,QAA4E;IAC1I,MAAM,OAAO,GAAG,EAAE,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;KAChD;IACD,OAAO,OAAO,CAAA;AAClB,CAAC;AAPD,oBAOC;AAEM,KAAK,UAAU,SAAS,CAAwB,YAAoB,EAAE,QAAuB;IAChG,MAAM,OAAO,GAAG,EAAE,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;QACnC,OAAO,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;KAClC;IACD,OAAO,OAAO,CAAA;AAClB,CAAC;AAND,8BAMC;
|
|
1
|
+
{"version":3,"file":"loop-utils.js","sourceRoot":"","sources":["../../src/loop-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@ function validatorReturnErrArray(...paramsToValidate) {
|
|
|
50
50
|
// support for multiple names with multiple values for one rule. Eg: {name: [{startDate:'20180101'}, {endDate:'20180101'}], type: 'dateInt8'}
|
|
51
51
|
paramsToValidate.forEach(param => {
|
|
52
52
|
if (typeof param !== 'object' || Array.isArray(param))
|
|
53
|
-
throw new error_handler_1.dataValidationUtilErrorHandler(`wrongTypeForDataValidatorArgument`, 500, { origin: 'Generic validator',
|
|
53
|
+
throw new error_handler_1.dataValidationUtilErrorHandler(`wrongTypeForDataValidatorArgument`, 500, { origin: 'Generic validator', expectedType: 'object', actualType: Array.isArray(param) ? 'array' : typeof param });
|
|
54
54
|
// parse => name: {myVar1: 'blah, myvar2: myvar2}
|
|
55
55
|
if (typeof param.name === 'object' && !Array.isArray(param.name))
|
|
56
56
|
Object.keys(param.name).forEach(name => paramsFormatted.push(Object.assign({}, param, { name: name, value: param.name[name] })));
|
|
@@ -89,14 +89,14 @@ function validatorReturnErrArray(...paramsToValidate) {
|
|
|
89
89
|
return errMess('requiredVariableEmpty');
|
|
90
90
|
const isArray = paramObj.isArray;
|
|
91
91
|
if (isArray && !Array.isArray(value))
|
|
92
|
-
return errMess('wrongTypeForVar', {
|
|
92
|
+
return errMess('wrongTypeForVar', { expectedType: 'array', gotType: typeof value });
|
|
93
93
|
// TYPE
|
|
94
94
|
if ((0, isset_1.isset)(paramObj.type)) {
|
|
95
95
|
const types = (0, array_utils_1.asArray)(paramObj.type); // support for multiple type
|
|
96
96
|
const areSomeTypeValid = types.some(type => {
|
|
97
97
|
if (type.endsWith('[]')) {
|
|
98
98
|
if (!Array.isArray(value))
|
|
99
|
-
errMess('wrongTypeForVar', {
|
|
99
|
+
errMess('wrongTypeForVar', { expectedType: 'array', gotType: typeof value });
|
|
100
100
|
type = type.replace('[]', '');
|
|
101
101
|
}
|
|
102
102
|
const allTypes = [
|
|
@@ -146,7 +146,7 @@ function validatorReturnErrArray(...paramsToValidate) {
|
|
|
146
146
|
(0, isset_1.isset)((0, config_1.configFn)().customTypes[type]) && (0, config_1.configFn)().customTypes[type].test(value);
|
|
147
147
|
});
|
|
148
148
|
if (!areSomeTypeValid)
|
|
149
|
-
return errMess(`wrongTypeForVar`, { expectedTypes: types.join(', '), gotType: Object.prototype.toString.call(value), gotValue: (0, remove_circular_json_stringify_1.removeCircularJSONstringify)(value) });
|
|
149
|
+
return errMess(`wrongTypeForVar`, { expectedTypes: types.join(', '), gotType: Object.prototype.toString.call(value), gotValue: (0, remove_circular_json_stringify_1.removeCircularJSONstringify)(value).substring(0, 999) });
|
|
150
150
|
}
|
|
151
151
|
// GREATER / LESS
|
|
152
152
|
if ((0, isset_1.isset)(paramObj.gte) && value < paramObj.gte)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-utils.js","sourceRoot":"","sources":["../../src/validation-utils.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAC1C,mBAAmB;AACnB,0CAA0C;AAC1C,2DAAwE;AACxE,mCAA+B;AAC/B,6CAAgG;AAChG,+CAAuC;AACvC,6CAA2C;AAC3C,yCAAoC;AACpC,qFAA8E;AAI9E,SAAgB,OAAO,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,CAAC,CAAA,CAAC,CAAC;AAAxG,0BAAwG;AAExG,SAAgB,eAAe,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAA,aAAK,EAAC,GAAG,CAAC,IAAI,IAAA,kBAAO,EAAC,GAAG,CAAC,CAAC,CAAA,CAAC,CAAC;AAAjG,0CAAiG;AAEjG,SAAgB,YAAY,CAAC,QAAQ,IAAI,OAAO,QAAQ,YAAY,IAAI,CAAA,CAAC,CAAC;AAA1E,oCAA0E;AAE1E,+BAA+B;AAC/B,SAAgB,4BAA4B,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAA,aAAK,EAAC,KAAK,CAAC,CAAC,CAAA,CAAC,CAAC;AAAzG,oEAAyG;AAEzG,4DAA4D;AAC5D,SAAgB,iBAAiB,CAAC,GAAG;IACjC,IAAI,CAAC,IAAA,aAAK,EAAC,GAAG,CAAC,IAAI,CAAC,IAAA,aAAK,EAAC,GAAG,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,8CAA8B,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;AACnG,CAAC;AAFD,8CAEC;AAiED,SAAgB,SAAS,CAAC,GAAG,gBAAmC;IAC5D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,gBAAgB,CAAC,CAAA;IAC7D,IAAI,QAAQ,CAAC,MAAM;QAAE,MAAM,IAAI,8CAA8B,CAAC,GAAG,QAAQ,CAAC,CAAA;AAC9E,CAAC;AAHD,8BAGC;AAGD;;GAEG;AACH,SAAgB,OAAO,CAAC,GAAG,gBAAgB;IACvC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,gBAAgB,CAAC,CAAA;IAC7D,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AACzC,CAAC;AAHD,0BAGC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAC,KAAK,EAAE,IAAe,IAAI,OAAO,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC,CAAC;AAAzG,wBAAyG;AAEzG,SAAgB,uBAAuB,CAAC,GAAG,gBAAmC;IAC1E,IAAI,eAAe,GAAsB,EAAE,CAAA;IAE3C,6IAA6I;IAC7I,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACjD,MAAM,IAAI,8CAA8B,CAAC,mCAAmC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"validation-utils.js","sourceRoot":"","sources":["../../src/validation-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/loop-utils.ts
CHANGED
|
@@ -25,6 +25,7 @@ export async function forIasync<T extends any[] | any>(nbIterations: number, cal
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
export type RecursiveCallback = (item: any, addr: string, lastElementKey: string | number, parent: ObjectGeneric | any[]) => false | any
|
|
28
|
+
export type RecursiveConfig = { disableCircularDependencyRemoval?: boolean }
|
|
28
29
|
/**
|
|
29
30
|
* @param {any} item the first array or object or whatever you want to recursively browse
|
|
30
31
|
* @param {function} callback the callback you want to apply on items including the main one
|
|
@@ -40,7 +41,7 @@ export type RecursiveCallback = (item: any, addr: string, lastElementKey: string
|
|
|
40
41
|
* NOTE: will remove circular references
|
|
41
42
|
* /!\ check return values
|
|
42
43
|
*/
|
|
43
|
-
export async function recursiveGenericFunction(item: ObjectGeneric | any[], callback: RecursiveCallback, addr$ = '', lastElementKey: string | number = '', parent?, techFieldToAvoidCircularDependency = []) {
|
|
44
|
+
export async function recursiveGenericFunction(item: ObjectGeneric | any[], callback: RecursiveCallback, config?: RecursiveConfig, addr$ = '', lastElementKey: string | number = '', parent?, techFieldToAvoidCircularDependency = []) {
|
|
44
45
|
err500IfNotSet({ callback })
|
|
45
46
|
|
|
46
47
|
if (!techFieldToAvoidCircularDependency.includes(item)) {
|
|
@@ -49,14 +50,14 @@ export async function recursiveGenericFunction(item: ObjectGeneric | any[], call
|
|
|
49
50
|
if (result !== false) {
|
|
50
51
|
const addr = addr$ ? addr$ + '.' : ''
|
|
51
52
|
if (Array.isArray(item)) {
|
|
52
|
-
techFieldToAvoidCircularDependency.push(item)
|
|
53
|
+
if (config.disableCircularDependencyRemoval !== true) techFieldToAvoidCircularDependency.push(item)
|
|
53
54
|
await Promise.all(item.map(
|
|
54
|
-
(e, i) => recursiveGenericFunction(e, callback, addr + '[' + i + ']', i, item, techFieldToAvoidCircularDependency)
|
|
55
|
+
(e, i) => recursiveGenericFunction(e, callback, config, addr + '[' + i + ']', i, item, techFieldToAvoidCircularDependency)
|
|
55
56
|
))
|
|
56
57
|
} else if (isObject(item)) {
|
|
57
|
-
techFieldToAvoidCircularDependency.push(item)
|
|
58
|
+
if (config.disableCircularDependencyRemoval !== true) techFieldToAvoidCircularDependency.push(item)
|
|
58
59
|
await Promise.all(Object.entries(item).map(
|
|
59
|
-
([key, val]) => recursiveGenericFunction(val, callback, addr + key.replace(/\./g, '%'), key, item, techFieldToAvoidCircularDependency)
|
|
60
|
+
([key, val]) => recursiveGenericFunction(val, callback, config, addr + key.replace(/\./g, '%'), key, item, techFieldToAvoidCircularDependency)
|
|
60
61
|
))
|
|
61
62
|
}
|
|
62
63
|
}
|
|
@@ -80,7 +81,7 @@ export async function recursiveGenericFunction(item: ObjectGeneric | any[], call
|
|
|
80
81
|
* NOTE: will remove circular references
|
|
81
82
|
* /!\ check return values
|
|
82
83
|
*/
|
|
83
|
-
export function recursiveGenericFunctionSync(item: ObjectGeneric | any[], callback: RecursiveCallback, addr$ = '', lastElementKey: string | number = '', parent?, techFieldToAvoidCircularDependency = []) {
|
|
84
|
+
export function recursiveGenericFunctionSync(item: ObjectGeneric | any[], callback: RecursiveCallback, config?: RecursiveConfig, addr$ = '', lastElementKey: string | number = '', parent?, techFieldToAvoidCircularDependency = []) {
|
|
84
85
|
err500IfNotSet({ callback })
|
|
85
86
|
|
|
86
87
|
if (!techFieldToAvoidCircularDependency.includes(item)) {
|
|
@@ -89,11 +90,11 @@ export function recursiveGenericFunctionSync(item: ObjectGeneric | any[], callba
|
|
|
89
90
|
if (result !== false) {
|
|
90
91
|
const addr = addr$ ? addr$ + '.' : ''
|
|
91
92
|
if (Array.isArray(item)) {
|
|
92
|
-
techFieldToAvoidCircularDependency.push(item) // do not up one level
|
|
93
|
-
item.forEach((e, i) => recursiveGenericFunctionSync(e, callback, addr + '[' + i + ']', i, item, techFieldToAvoidCircularDependency))
|
|
93
|
+
if (config.disableCircularDependencyRemoval !== true) techFieldToAvoidCircularDependency.push(item) // do not up one level
|
|
94
|
+
item.forEach((e, i) => recursiveGenericFunctionSync(e, callback, config, addr + '[' + i + ']', i, item, techFieldToAvoidCircularDependency))
|
|
94
95
|
} else if (isObject(item)) {
|
|
95
|
-
techFieldToAvoidCircularDependency.push(item)
|
|
96
|
-
Object.entries(item).forEach(([key, val]) => recursiveGenericFunctionSync(val, callback, addr + key.replace(/\./g, '%'), key, item, techFieldToAvoidCircularDependency))
|
|
96
|
+
if (config.disableCircularDependencyRemoval !== true) techFieldToAvoidCircularDependency.push(item)
|
|
97
|
+
Object.entries(item).forEach(([key, val]) => recursiveGenericFunctionSync(val, callback, config, addr + key.replace(/\./g, '%'), key, item, techFieldToAvoidCircularDependency))
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
}
|
package/src/validation-utils.ts
CHANGED
|
@@ -113,7 +113,7 @@ export function validatorReturnErrArray(...paramsToValidate: ValidatorObject[]):
|
|
|
113
113
|
// support for multiple names with multiple values for one rule. Eg: {name: [{startDate:'20180101'}, {endDate:'20180101'}], type: 'dateInt8'}
|
|
114
114
|
paramsToValidate.forEach(param => {
|
|
115
115
|
if (typeof param !== 'object' || Array.isArray(param))
|
|
116
|
-
throw new dataValidationUtilErrorHandler(`wrongTypeForDataValidatorArgument`, 500, { origin: 'Generic validator',
|
|
116
|
+
throw new dataValidationUtilErrorHandler(`wrongTypeForDataValidatorArgument`, 500, { origin: 'Generic validator', expectedType: 'object', actualType: Array.isArray(param) ? 'array' : typeof param })
|
|
117
117
|
|
|
118
118
|
// parse => name: {myVar1: 'blah, myvar2: myvar2}
|
|
119
119
|
if (typeof param.name === 'object' && !Array.isArray(param.name))
|
|
@@ -148,14 +148,14 @@ export function validatorReturnErrArray(...paramsToValidate: ValidatorObject[]):
|
|
|
148
148
|
if (!emptyAllowed && value === '') return errMess('requiredVariableEmpty')
|
|
149
149
|
|
|
150
150
|
const isArray = paramObj.isArray
|
|
151
|
-
if (isArray && !Array.isArray(value)) return errMess('wrongTypeForVar', {
|
|
151
|
+
if (isArray && !Array.isArray(value)) return errMess('wrongTypeForVar', { expectedType: 'array', gotType: typeof value })
|
|
152
152
|
|
|
153
153
|
// TYPE
|
|
154
154
|
if (isset(paramObj.type)) {
|
|
155
155
|
const types = asArray(paramObj.type) // support for multiple type
|
|
156
156
|
const areSomeTypeValid = types.some(type => {
|
|
157
157
|
if (type.endsWith('[]')) {
|
|
158
|
-
if (!Array.isArray(value)) errMess('wrongTypeForVar', {
|
|
158
|
+
if (!Array.isArray(value)) errMess('wrongTypeForVar', { expectedType: 'array', gotType: typeof value })
|
|
159
159
|
type = type.replace('[]', '')
|
|
160
160
|
}
|
|
161
161
|
|
|
@@ -207,7 +207,7 @@ export function validatorReturnErrArray(...paramsToValidate: ValidatorObject[]):
|
|
|
207
207
|
typeof value === type && type !== 'object' || // for string, number, boolean...
|
|
208
208
|
isset(configFn().customTypes[type]) && configFn().customTypes[type].test(value)
|
|
209
209
|
})
|
|
210
|
-
if (!areSomeTypeValid) return errMess(`wrongTypeForVar`, { expectedTypes: types.join(', '), gotType: Object.prototype.toString.call(value), gotValue: removeCircularJSONstringify(value) })
|
|
210
|
+
if (!areSomeTypeValid) return errMess(`wrongTypeForVar`, { expectedTypes: types.join(', '), gotType: Object.prototype.toString.call(value), gotValue: removeCircularJSONstringify(value).substring(0, 999) })
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
// GREATER / LESS
|