structure-verifier 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -4
- package/dist/index.d.ts +5 -0
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/src/verifiers/any/v_any.d.ts +9 -1
- package/dist/src/verifiers/any/v_any.js +19 -3
- package/dist/src/verifiers/any/v_any.js.map +1 -1
- package/dist/src/verifiers/any/v_any.test.d.ts +1 -0
- package/dist/src/verifiers/any/v_any.test.js +13 -0
- package/dist/src/verifiers/any/v_any.test.js.map +1 -0
- package/dist/src/verifiers/array/v_array.d.ts +15 -2
- package/dist/src/verifiers/array/v_array.js +81 -2
- package/dist/src/verifiers/array/v_array.js.map +1 -1
- package/dist/src/verifiers/array/v_array.test.d.ts +1 -0
- package/dist/src/verifiers/array/v_array.test.js +74 -0
- package/dist/src/verifiers/array/v_array.test.js.map +1 -0
- package/dist/src/verifiers/object/v_object.js +1 -1
- package/dist/src/verifiers/object/v_object.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# structure-verifier 0.0.
|
|
1
|
+
# structure-verifier 0.0.4
|
|
2
2
|
|
|
3
3
|
structure-verifier is a typescrpt library to validate data of "any" type and to ensure that it corresponds to a data type.
|
|
4
4
|
|
|
@@ -12,7 +12,7 @@ structure-verifier is a typescrpt library to validate data of "any" type and to
|
|
|
12
12
|
|
|
13
13
|
```typescript
|
|
14
14
|
import { Verifiers as V,VerificationError } from "structure-verifier";
|
|
15
|
-
//////////
|
|
15
|
+
//////////Verificator object creation
|
|
16
16
|
const v = new V.VNumber();
|
|
17
17
|
/////////Running validations
|
|
18
18
|
|
|
@@ -104,7 +104,7 @@ String Exclusive Conditions
|
|
|
104
104
|
});
|
|
105
105
|
///// Validate a string or null that meets all conditions otherwise error (VerificationError)
|
|
106
106
|
```
|
|
107
|
-
|
|
107
|
+
***
|
|
108
108
|
### Booleans
|
|
109
109
|
Validations for boolean data.
|
|
110
110
|
|
|
@@ -132,7 +132,7 @@ try {
|
|
|
132
132
|
console.error(error);
|
|
133
133
|
}
|
|
134
134
|
```
|
|
135
|
-
|
|
135
|
+
***
|
|
136
136
|
### Objects
|
|
137
137
|
Validations for object data.
|
|
138
138
|
|
|
@@ -184,3 +184,58 @@ try {
|
|
|
184
184
|
console.error(error);
|
|
185
185
|
}
|
|
186
186
|
```
|
|
187
|
+
***
|
|
188
|
+
### Arrays
|
|
189
|
+
Validations for array data.
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
const arrayVal = new V.VArray({verifier:new V.VNumber()}); // Returns Array | null
|
|
193
|
+
const notNullArrayVal = new V.VArrayNotNull({verifier:new V.VNumber()}); // Returns Array
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Array Exclusive Conditions
|
|
197
|
+
|
|
198
|
+
- **minLength**: Minimum length of the array.
|
|
199
|
+
- **maxLength**: Maximum length of the array.
|
|
200
|
+
|
|
201
|
+
#### Example
|
|
202
|
+
```typescript
|
|
203
|
+
const arrayVal = new V.VArray(new V.VNumber(), { minLength: 1, maxLength: 5 });
|
|
204
|
+
const notNullArrayVal = new V.VArrayNotNull(new V.VNumber(), { minLength: 2 });
|
|
205
|
+
|
|
206
|
+
try {
|
|
207
|
+
console.log(arrayVal.check([1, 2, 3])); // Output: [1, 2, 3]
|
|
208
|
+
console.log(arrayVal.check([])); // Throws VerificationError (array too short)
|
|
209
|
+
console.log(arrayVal.check(null)); // Output: null
|
|
210
|
+
console.log(notNullArrayVal.check([1, 2])); // Output: [1, 2]
|
|
211
|
+
console.log(notNullArrayVal.check([1])); // Throws VerificationError (array too short)
|
|
212
|
+
} catch (error) {
|
|
213
|
+
console.error(error);
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
***
|
|
217
|
+
### Any
|
|
218
|
+
Validations for any data.
|
|
219
|
+
|
|
220
|
+
```typescript
|
|
221
|
+
const anyVal = new V.VAny(); // Returns any type
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
VAny Exclusive Conditions
|
|
225
|
+
|
|
226
|
+
*No exclusive conditions for any validation*
|
|
227
|
+
|
|
228
|
+
#### Example
|
|
229
|
+
```typescript
|
|
230
|
+
const anyVal = new V.VAny();
|
|
231
|
+
|
|
232
|
+
try {
|
|
233
|
+
console.log(anyVal.check('true')); // Output: true
|
|
234
|
+
console.log(anyVal.check('FALSE')); // Output: false
|
|
235
|
+
console.log(anyVal.check(null)); // Output: null
|
|
236
|
+
console.log(anyVal.check('1')); // Output: true
|
|
237
|
+
console.log(anyVal.check(0)); // Output: false
|
|
238
|
+
} catch (error) {
|
|
239
|
+
console.error(error);
|
|
240
|
+
}
|
|
241
|
+
```
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { VAny } from "./src/verifiers/any/v_any";
|
|
2
|
+
import { VArray, VArrayNotNull } from "./src/verifiers/array/v_array";
|
|
1
3
|
import { VBoolean, VBooleanNotNull } from "./src/verifiers/boolean/v_boolean";
|
|
2
4
|
import { VNumber, VNumberNotNull } from "./src/verifiers/number/v_number";
|
|
3
5
|
import { VObject, VObjectNotNull } from "./src/verifiers/object/v_object";
|
|
@@ -13,4 +15,7 @@ export declare const Verifiers: {
|
|
|
13
15
|
VBooleanNotNull: typeof VBooleanNotNull;
|
|
14
16
|
VObjectNotNull: typeof VObjectNotNull;
|
|
15
17
|
VObject: typeof VObject;
|
|
18
|
+
VArray: typeof VArray;
|
|
19
|
+
VArrayNotNull: typeof VArrayNotNull;
|
|
20
|
+
VAny: typeof VAny;
|
|
16
21
|
};
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Verifiers = void 0;
|
|
4
|
+
const v_any_1 = require("./src/verifiers/any/v_any");
|
|
5
|
+
const v_array_1 = require("./src/verifiers/array/v_array");
|
|
4
6
|
const v_boolean_1 = require("./src/verifiers/boolean/v_boolean");
|
|
5
7
|
const v_number_1 = require("./src/verifiers/number/v_number");
|
|
6
8
|
const v_object_1 = require("./src/verifiers/object/v_object");
|
|
@@ -15,6 +17,9 @@ exports.Verifiers = {
|
|
|
15
17
|
VBoolean: v_boolean_1.VBoolean,
|
|
16
18
|
VBooleanNotNull: v_boolean_1.VBooleanNotNull,
|
|
17
19
|
VObjectNotNull: v_object_1.VObjectNotNull,
|
|
18
|
-
VObject: v_object_1.VObject
|
|
20
|
+
VObject: v_object_1.VObject,
|
|
21
|
+
VArray: v_array_1.VArray,
|
|
22
|
+
VArrayNotNull: v_array_1.VArrayNotNull,
|
|
23
|
+
VAny: v_any_1.VAny
|
|
19
24
|
};
|
|
20
25
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAA8E;AAC9E,8DAA0E;AAC1E,8DAA0E;AAC1E,8DAA0E;AAC1E,uDAAoD;AAIvC,QAAA,SAAS,GAAG;IACrB,QAAQ,EAAR,mBAAQ;IACR,cAAc,EAAd,yBAAc;IACd,OAAO,EAAP,kBAAO;IACP,cAAc,EAAd,yBAAc;IACd,OAAO,EAAP,kBAAO;IACP,QAAQ,EAAR,oBAAQ;IACR,eAAe,EAAf,2BAAe;IACf,cAAc,EAAd,yBAAc;IACd,OAAO,EAAP,kBAAO;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AACjD,2DAAsE;AACtE,iEAA8E;AAC9E,8DAA0E;AAC1E,8DAA0E;AAC1E,8DAA0E;AAC1E,uDAAoD;AAIvC,QAAA,SAAS,GAAG;IACrB,QAAQ,EAAR,mBAAQ;IACR,cAAc,EAAd,yBAAc;IACd,OAAO,EAAP,kBAAO;IACP,cAAc,EAAd,yBAAc;IACd,OAAO,EAAP,kBAAO;IACP,QAAQ,EAAR,oBAAQ;IACR,eAAe,EAAf,2BAAe;IACf,cAAc,EAAd,yBAAc;IACd,OAAO,EAAP,kBAAO;IACP,MAAM,EAAN,gBAAM;IACN,aAAa,EAAb,uBAAa;IACb,IAAI,EAAJ,YAAI;CACP,CAAA"}
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import { IInfo, VBadTypeMessage, VDefaultValue, VVCIsRequired } from "../../interfaces/types";
|
|
2
|
+
import { Verifier } from "../verifier";
|
|
3
|
+
interface VAnyConditions extends VBadTypeMessage, VDefaultValue<number>, VVCIsRequired, IInfo<any> {
|
|
2
4
|
}
|
|
5
|
+
export declare class VAny extends Verifier<any | null> {
|
|
6
|
+
protected cond?: VAnyConditions | undefined;
|
|
7
|
+
check(data: any): number | null;
|
|
8
|
+
constructor(cond?: VAnyConditions | undefined);
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
3
|
+
exports.VAny = void 0;
|
|
4
|
+
const verifier_1 = require("../verifier");
|
|
5
|
+
const dMessages = {
|
|
6
|
+
badTypeMessage: {
|
|
7
|
+
es: () => `debe ser un dato`,
|
|
8
|
+
en: () => `must be a data`
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
class VAny extends verifier_1.Verifier {
|
|
12
|
+
check(data) {
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
15
|
+
constructor(cond) {
|
|
16
|
+
super(cond);
|
|
17
|
+
this.cond = cond;
|
|
18
|
+
this.cond = cond;
|
|
19
|
+
this.badTypeMessage = dMessages.badTypeMessage;
|
|
20
|
+
}
|
|
5
21
|
}
|
|
6
|
-
exports.
|
|
22
|
+
exports.VAny = VAny;
|
|
7
23
|
//# sourceMappingURL=v_any.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v_any.js","sourceRoot":"","sources":["../../../../src/src/verifiers/any/v_any.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"v_any.js","sourceRoot":"","sources":["../../../../src/src/verifiers/any/v_any.ts"],"names":[],"mappings":";;;AAEA,0CAAuC;AASvC,MAAM,SAAS,GAAwB;IACnC,cAAc,EAAE;QACZ,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAkB;QAC5B,EAAE,EAAE,GAAG,EAAE,CAAC,gBAAgB;KAC7B;CACJ,CAAA;AAID,MAAa,IAAK,SAAQ,mBAAoB;IAC1C,KAAK,CAAC,IAAS;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,YAAsB,IAAqB;QACvC,KAAK,CAAC,IAAI,CAAC,CAAC;QADM,SAAI,GAAJ,IAAI,CAAiB;QAEvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;IACnD,CAAC;CACJ;AATD,oBASC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_1 = require("../../../index");
|
|
4
|
+
describe('VAny', () => {
|
|
5
|
+
it('should validate data as any', () => {
|
|
6
|
+
const validator = new index_1.Verifiers.VAny();
|
|
7
|
+
expect(validator.check([1, 2, 3])).toEqual([1, 2, 3]);
|
|
8
|
+
expect(validator.check(null)).toBeNull();
|
|
9
|
+
expect(validator.check(1)).toEqual(1);
|
|
10
|
+
expect(validator.check("TEST")).toEqual("TEST");
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=v_any.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v_any.test.js","sourceRoot":"","sources":["../../../../src/src/verifiers/any/v_any.test.ts"],"names":[],"mappings":";;AAAA,0CAAgD;AAGhD,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,MAAM,SAAS,GAAG,IAAI,iBAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
import { VBadTypeMessage, VDefaultValue, VVCIsRequired } from "../../interfaces/types";
|
|
2
|
+
import { Verifier } from "../verifier";
|
|
3
|
+
export interface VArrayConditions<T extends Verifier<any>> extends VBadTypeMessage, VDefaultValue<ReturnType<T['check']>[]>, VVCIsRequired {
|
|
4
|
+
minLength?: number;
|
|
5
|
+
maxLength?: number;
|
|
6
|
+
verifier: T;
|
|
2
7
|
}
|
|
3
|
-
export declare class
|
|
8
|
+
export declare class VArray<T extends Verifier<any>> extends Verifier<ReturnType<T['check']>[] | null> {
|
|
9
|
+
protected cond: VArrayConditions<T>;
|
|
10
|
+
check(data: any): ReturnType<T["check"]>[] | null;
|
|
11
|
+
constructor(cond: VArrayConditions<T>);
|
|
12
|
+
}
|
|
13
|
+
export declare class VArrayNotNull<T extends Verifier<any>> extends Verifier<ReturnType<T['check']>[]> {
|
|
14
|
+
protected cond: VArrayConditions<T>;
|
|
15
|
+
check(data: any): ReturnType<T["check"]>[];
|
|
16
|
+
constructor(cond: VArrayConditions<T>);
|
|
4
17
|
}
|
|
@@ -1,10 +1,89 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VArrayNotNull = exports.VArray = void 0;
|
|
4
|
-
|
|
4
|
+
const v_error_1 = require("../../error/v_error");
|
|
5
|
+
const message_1 = require("../../languages/message");
|
|
6
|
+
const verifier_1 = require("../verifier");
|
|
7
|
+
const dMessages = {
|
|
8
|
+
minLength: {
|
|
9
|
+
es: (values) => `debe tener al menos ${values.minLength} elementos`,
|
|
10
|
+
en: (values) => `must have at least ${values.minLength} elements`
|
|
11
|
+
},
|
|
12
|
+
maxLength: {
|
|
13
|
+
es: (values) => `no puede tener más de ${values.maxLength} elementos`,
|
|
14
|
+
en: (values) => `must not have more than ${values.maxLength} elements`
|
|
15
|
+
},
|
|
16
|
+
badTypeMessage: {
|
|
17
|
+
es: () => `debe ser un array`,
|
|
18
|
+
en: () => `must be an array`
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
function vArray(data, badTypeMessage, conds) {
|
|
22
|
+
if (!Array.isArray(data)) {
|
|
23
|
+
throw new v_error_1.VerificationError([{
|
|
24
|
+
key: "",
|
|
25
|
+
message: (0, message_1.getMessage)(badTypeMessage, undefined, badTypeMessage)
|
|
26
|
+
}]);
|
|
27
|
+
}
|
|
28
|
+
if (conds.minLength !== undefined && data.length < conds.minLength) {
|
|
29
|
+
throw new v_error_1.VerificationError([{
|
|
30
|
+
key: "",
|
|
31
|
+
message: (0, message_1.getMessage)(conds === null || conds === void 0 ? void 0 : conds.minLength, { minLength: (0, message_1.getValue)(conds === null || conds === void 0 ? void 0 : conds.minLength) }, dMessages.minLength)
|
|
32
|
+
}]);
|
|
33
|
+
}
|
|
34
|
+
if (conds.maxLength !== undefined && data.length > conds.maxLength) {
|
|
35
|
+
throw new v_error_1.VerificationError([{
|
|
36
|
+
key: "",
|
|
37
|
+
message: (0, message_1.getMessage)(conds === null || conds === void 0 ? void 0 : conds.maxLength, { maxLength: (0, message_1.getValue)(conds === null || conds === void 0 ? void 0 : conds.maxLength) }, dMessages.maxLength)
|
|
38
|
+
}]);
|
|
39
|
+
}
|
|
40
|
+
let errors = [];
|
|
41
|
+
let value = [];
|
|
42
|
+
for (let i = 0; i < data.length; i++) {
|
|
43
|
+
try {
|
|
44
|
+
value.push(conds.verifier.check(data[i]));
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (error instanceof v_error_1.VerificationError) {
|
|
48
|
+
errors.push(...error.errors.map(v => {
|
|
49
|
+
return {
|
|
50
|
+
key: i.toString(),
|
|
51
|
+
message: v
|
|
52
|
+
};
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (errors.length > 0) {
|
|
58
|
+
throw new v_error_1.VerificationError(errors);
|
|
59
|
+
}
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
62
|
+
class VArray extends verifier_1.Verifier {
|
|
63
|
+
check(data) {
|
|
64
|
+
const validatedData = this.isRequired(data);
|
|
65
|
+
if (validatedData === null) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
return vArray(validatedData, this.badTypeMessage, this.cond);
|
|
69
|
+
}
|
|
70
|
+
constructor(cond) {
|
|
71
|
+
super(cond);
|
|
72
|
+
this.cond = cond;
|
|
73
|
+
this.badTypeMessage = dMessages.badTypeMessage;
|
|
74
|
+
}
|
|
5
75
|
}
|
|
6
76
|
exports.VArray = VArray;
|
|
7
|
-
class VArrayNotNull {
|
|
77
|
+
class VArrayNotNull extends verifier_1.Verifier {
|
|
78
|
+
check(data) {
|
|
79
|
+
const validatedData = this.isRequired(data, true);
|
|
80
|
+
return vArray(validatedData, this.badTypeMessage, this.cond);
|
|
81
|
+
}
|
|
82
|
+
constructor(cond) {
|
|
83
|
+
super(cond);
|
|
84
|
+
this.cond = cond;
|
|
85
|
+
this.badTypeMessage = dMessages.badTypeMessage;
|
|
86
|
+
}
|
|
8
87
|
}
|
|
9
88
|
exports.VArrayNotNull = VArrayNotNull;
|
|
10
89
|
//# sourceMappingURL=v_array.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v_array.js","sourceRoot":"","sources":["../../../../src/src/verifiers/array/v_array.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;
|
|
1
|
+
{"version":3,"file":"v_array.js","sourceRoot":"","sources":["../../../../src/src/verifiers/array/v_array.ts"],"names":[],"mappings":";;;AAAA,iDAAwD;AAExD,qDAAiF;AACjF,0CAAuC;AAcvC,MAAM,SAAS,GAA0B;IACrC,SAAS,EAAE;QACP,EAAE,EAAE,CAAC,MAA8B,EAAE,EAAE,CAAC,uBAAuB,MAAM,CAAC,SAAS,YAAY;QAC3F,EAAE,EAAE,CAAC,MAA8B,EAAE,EAAE,CAAC,sBAAsB,MAAM,CAAC,SAAS,WAAW;KAC5F;IACD,SAAS,EAAE;QACP,EAAE,EAAE,CAAC,MAA8B,EAAE,EAAE,CAAC,yBAAyB,MAAM,CAAC,SAAS,YAAY;QAC7F,EAAE,EAAE,CAAC,MAA8B,EAAE,EAAE,CAAC,2BAA2B,MAAM,CAAC,SAAS,WAAW;KACjG;IACD,cAAc,EAAE;QACZ,EAAE,EAAE,GAAG,EAAE,CAAC,mBAAmB;QAC7B,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAkB;KAC/B;CACJ,CAAA;AAED,SAAS,MAAM,CAA0B,IAAS,EAAE,cAAsC,EAAE,KAA0B;IAClH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,2BAAiB,CAAC,CAAC;gBACzB,GAAG,EAAE,EAAE;gBACP,OAAO,EAAE,IAAA,oBAAU,EAAC,cAAc,EAAE,SAAS,EAAE,cAAc,CAAC;aACjE,CAAC,CAAC,CAAC;IACR,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACjE,MAAM,IAAI,2BAAiB,CAAC,CAAC;gBACzB,GAAG,EAAE,EAAE;gBACP,OAAO,EAAE,IAAA,oBAAU,EAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAA,kBAAQ,EAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC;aACxG,CAAC,CAAC,CAAC;IACR,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACjE,MAAM,IAAI,2BAAiB,CAAC,CAAC;gBACzB,GAAG,EAAE,EAAE;gBACP,OAAO,EAAE,IAAA,oBAAU,EAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAA,kBAAQ,EAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC;aACxG,CAAC,CAAC,CAAC;IACR,CAAC;IAED,IAAI,MAAM,GAAkB,EAAE,CAAC;IAC/B,IAAI,KAAK,GAA6B,EAAE,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,2BAAiB,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAChC,OAAO;wBACH,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;wBACjB,OAAO,EAAE,CAAC;qBACb,CAAC;gBACN,CAAC,CAAC,CAAC,CAAC;YACR,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,2BAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAa,MAAgC,SAAQ,mBAAyC;IAC1F,KAAK,CAAC,IAAS;QACX,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,YAAsB,IAAyB;QAC3C,KAAK,CAAC,IAAI,CAAC,CAAC;QADM,SAAI,GAAJ,IAAI,CAAqB;QAE3C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;IACnD,CAAC;CACJ;AAbD,wBAaC;AAED,MAAa,aAAuC,SAAQ,mBAAkC;IAC1F,KAAK,CAAC,IAAS;QACX,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,YAAsB,IAAyB;QAC3C,KAAK,CAAC,IAAI,CAAC,CAAC;QADM,SAAI,GAAJ,IAAI,CAAqB;QAE3C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;IACnD,CAAC;CACJ;AAVD,sCAUC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_1 = require("../../../index");
|
|
4
|
+
const v_error_1 = require("../../error/v_error");
|
|
5
|
+
describe('VArray', () => {
|
|
6
|
+
it('should validate arrays with valid data', () => {
|
|
7
|
+
const validator = new index_1.Verifiers.VArray({
|
|
8
|
+
verifier: new index_1.Verifiers.VNumberNotNull()
|
|
9
|
+
});
|
|
10
|
+
expect(validator.check([1, 2, 3])).toEqual([1, 2, 3]);
|
|
11
|
+
});
|
|
12
|
+
it('should throw a validation error for arrays with invalid data', () => {
|
|
13
|
+
const validator = new index_1.Verifiers.VArray({
|
|
14
|
+
verifier: new index_1.Verifiers.VNumberNotNull()
|
|
15
|
+
});
|
|
16
|
+
expect(() => validator.check([1, "2a", 3])).toThrow(v_error_1.VerificationError);
|
|
17
|
+
});
|
|
18
|
+
it('should return null for null or undefined values', () => {
|
|
19
|
+
const validator = new index_1.Verifiers.VArray({
|
|
20
|
+
verifier: new index_1.Verifiers.VNumberNotNull()
|
|
21
|
+
});
|
|
22
|
+
expect(validator.check(null)).toBeNull();
|
|
23
|
+
});
|
|
24
|
+
it('should throw a validation error for arrays that do not meet minLength condition', () => {
|
|
25
|
+
const validator = new index_1.Verifiers.VArray({
|
|
26
|
+
verifier: new index_1.Verifiers.VNumberNotNull(),
|
|
27
|
+
minLength: 3
|
|
28
|
+
});
|
|
29
|
+
expect(() => validator.check([1, 2])).toThrow(v_error_1.VerificationError);
|
|
30
|
+
});
|
|
31
|
+
it('should throw a validation error for arrays that exceed maxLength condition', () => {
|
|
32
|
+
const validator = new index_1.Verifiers.VArray({
|
|
33
|
+
maxLength: 2,
|
|
34
|
+
verifier: new index_1.Verifiers.VNumberNotNull()
|
|
35
|
+
});
|
|
36
|
+
expect(() => validator.check([1, 2, 3])).toThrow(v_error_1.VerificationError);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe('VArrayNotNull', () => {
|
|
40
|
+
it('should validate arrays with valid data', () => {
|
|
41
|
+
const validator = new index_1.Verifiers.VArrayNotNull({
|
|
42
|
+
verifier: new index_1.Verifiers.VNumberNotNull()
|
|
43
|
+
});
|
|
44
|
+
expect(validator.check([1, 2, 3])).toEqual([1, 2, 3]);
|
|
45
|
+
});
|
|
46
|
+
it('should throw a validation error for arrays with invalid data', () => {
|
|
47
|
+
const validator = new index_1.Verifiers.VArrayNotNull({
|
|
48
|
+
verifier: new index_1.Verifiers.VNumberNotNull()
|
|
49
|
+
});
|
|
50
|
+
expect(() => validator.check([1, "2a", 3])).toThrow(v_error_1.VerificationError);
|
|
51
|
+
});
|
|
52
|
+
it('should throw a validation error for null or undefined values', () => {
|
|
53
|
+
const validator = new index_1.Verifiers.VArrayNotNull({
|
|
54
|
+
verifier: new index_1.Verifiers.VNumberNotNull()
|
|
55
|
+
});
|
|
56
|
+
expect(() => validator.check(null)).toThrow(v_error_1.VerificationError);
|
|
57
|
+
expect(() => validator.check(undefined)).toThrow(v_error_1.VerificationError);
|
|
58
|
+
});
|
|
59
|
+
it('should throw a validation error for arrays that do not meet minLength condition', () => {
|
|
60
|
+
const validator = new index_1.Verifiers.VArrayNotNull({
|
|
61
|
+
verifier: new index_1.Verifiers.VNumberNotNull(),
|
|
62
|
+
minLength: 3
|
|
63
|
+
});
|
|
64
|
+
expect(() => validator.check([1, 2])).toThrow(v_error_1.VerificationError);
|
|
65
|
+
});
|
|
66
|
+
it('should throw a validation error for arrays that exceed maxLength condition', () => {
|
|
67
|
+
const validator = new index_1.Verifiers.VArrayNotNull({
|
|
68
|
+
verifier: new index_1.Verifiers.VNumberNotNull(),
|
|
69
|
+
maxLength: 2
|
|
70
|
+
});
|
|
71
|
+
expect(() => validator.check([1, 2, 3])).toThrow(v_error_1.VerificationError);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=v_array.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v_array.test.js","sourceRoot":"","sources":["../../../../src/src/verifiers/array/v_array.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,7 +79,7 @@ function vObject(data, badTypeMessage, conds) {
|
|
|
79
79
|
errors.push(...error.errorsObj.map(v => {
|
|
80
80
|
if (!v.key)
|
|
81
81
|
v.key = keys.keyV;
|
|
82
|
-
if (conds.properties[keys.keyV] instanceof VObject || conds.properties[keys.keyV] instanceof VObjectNotNull || conds.properties[keys.keyV] instanceof v_array_1.VArray || conds.properties[keys.keyV] instanceof v_array_1.VArrayNotNull || conds.properties[keys.keyV] instanceof v_any_1.
|
|
82
|
+
if (conds.properties[keys.keyV] instanceof VObject || conds.properties[keys.keyV] instanceof VObjectNotNull || conds.properties[keys.keyV] instanceof v_array_1.VArray || conds.properties[keys.keyV] instanceof v_array_1.VArrayNotNull || conds.properties[keys.keyV] instanceof v_any_1.VAny)
|
|
83
83
|
v.parent = keys.keyV + (v.parent ? '.' + v.parent : '');
|
|
84
84
|
v.isEmpty = undefined;
|
|
85
85
|
return v;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v_object.js","sourceRoot":"","sources":["../../../../src/src/verifiers/object/v_object.ts"],"names":[],"mappings":";;;AAAA,iDAAwD;AAExD,
|
|
1
|
+
{"version":3,"file":"v_object.js","sourceRoot":"","sources":["../../../../src/src/verifiers/object/v_object.ts"],"names":[],"mappings":"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"}
|