ejv 2.1.5 → 2.1.6
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/LICENSE +21 -21
- package/README-KR.md +604 -650
- package/README.md +608 -655
- package/build/cjs/{constants.js → src/constants.js} +0 -10
- package/build/cjs/src/constants.js.map +1 -0
- package/build/cjs/{ejv.js → src/ejv.js} +8 -87
- package/build/cjs/src/ejv.js.map +1 -0
- package/build/cjs/{index.js → src/index.js} +3 -3
- package/build/cjs/src/index.js.map +1 -0
- package/build/{esm → cjs/src}/interfaces.js.map +1 -1
- package/build/cjs/{tester.js → src/tester.js} +126 -146
- package/build/cjs/src/tester.js.map +1 -0
- package/build/cjs/{util.js → src/util.js} +16 -15
- package/build/cjs/src/util.js.map +1 -0
- package/build/esm/{constants.js → src/constants.js} +0 -10
- package/build/esm/src/constants.js.map +1 -0
- package/build/esm/{ejv.js → src/ejv.js} +6 -86
- package/build/esm/src/ejv.js.map +1 -0
- package/build/esm/src/index.js +4 -0
- package/build/esm/src/index.js.map +1 -0
- package/build/esm/src/interfaces.js.map +1 -0
- package/build/esm/{tester.js → src/tester.js} +77 -94
- package/build/esm/src/tester.js.map +1 -0
- package/build/esm/{util.js → src/util.js} +8 -8
- package/build/esm/src/util.js.map +1 -0
- package/build/{constants.d.ts → src/constants.d.ts} +1 -11
- package/build/src/ejv.d.ts +2 -0
- package/build/{interfaces.d.ts → src/interfaces.d.ts} +1 -7
- package/build/src/tester.d.ts +35 -0
- package/build/src/util.d.ts +7 -0
- package/eslint.config.mjs +0 -1
- package/package.json +55 -55
- package/spec/ArrayScheme.ts +12 -113
- package/spec/DateScheme.ts +8 -12
- package/spec/NumberScheme.ts +14 -23
- package/spec/ObjectScheme.ts +9 -12
- package/spec/RegExpScheme.ts +2 -2
- package/spec/StringScheme.ts +18 -34
- package/spec/common-test-util.ts +10 -13
- package/spec/testers.spec.ts +1 -35
- package/src/constants.ts +1 -14
- package/src/ejv.ts +2 -109
- package/src/interfaces.ts +1 -13
- package/src/tester.ts +77 -99
- package/src/util.ts +9 -9
- package/tsconfig.json +8 -2
- package/tsconfig.scripts.json +1 -1
- package/build/cjs/constants.js.map +0 -1
- package/build/cjs/ejv.js.map +0 -1
- package/build/cjs/index.js.map +0 -1
- package/build/cjs/interfaces.js.map +0 -1
- package/build/cjs/tester.js.map +0 -1
- package/build/cjs/util.js.map +0 -1
- package/build/ejv.d.ts +0 -2
- package/build/esm/constants.js.map +0 -1
- package/build/esm/ejv.js.map +0 -1
- package/build/esm/index.js +0 -4
- package/build/esm/index.js.map +0 -1
- package/build/esm/tester.js.map +0 -1
- package/build/esm/util.js.map +0 -1
- package/build/tester.d.ts +0 -39
- package/build/util.d.ts +0 -7
- package/spec/BufferScheme.ts +0 -406
- /package/build/cjs/{interfaces.js → src/interfaces.js} +0 -0
- /package/build/esm/{interfaces.js → src/interfaces.js} +0 -0
- /package/build/{index.d.ts → src/index.d.ts} +0 -0
package/spec/StringScheme.ts
CHANGED
|
@@ -6,13 +6,13 @@ import { ejv } from '../src/ejv';
|
|
|
6
6
|
import { EjvError, Scheme } from '../src/interfaces';
|
|
7
7
|
import { ERROR_MESSAGE, ERROR_TYPE } from '../src/constants';
|
|
8
8
|
import { createErrorMsg } from '../src/util';
|
|
9
|
-
import { checkSchemeError, TypeTester,
|
|
9
|
+
import { checkSchemeError, TypeTester, typeTesterArr } from './common-test-util';
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
describe('StringScheme', () => {
|
|
13
13
|
describe('type', () => {
|
|
14
14
|
describe('mismatch', () => {
|
|
15
|
-
|
|
15
|
+
typeTesterArr
|
|
16
16
|
.filter((obj: TypeTester): boolean => obj.type !== 'string')
|
|
17
17
|
.forEach((obj: TypeTester): void => {
|
|
18
18
|
const data = {
|
|
@@ -129,8 +129,7 @@ describe('StringScheme', () => {
|
|
|
129
129
|
const errorScheme: Scheme = {
|
|
130
130
|
key: 'a',
|
|
131
131
|
type: 'string',
|
|
132
|
-
|
|
133
|
-
enum: null
|
|
132
|
+
enum: null as unknown as string[]
|
|
134
133
|
};
|
|
135
134
|
|
|
136
135
|
checkSchemeError({
|
|
@@ -144,8 +143,7 @@ describe('StringScheme', () => {
|
|
|
144
143
|
const errorScheme: Scheme = {
|
|
145
144
|
key: 'a',
|
|
146
145
|
type: 'string',
|
|
147
|
-
|
|
148
|
-
enum: 'a'
|
|
146
|
+
enum: 'a' as unknown as string[]
|
|
149
147
|
};
|
|
150
148
|
|
|
151
149
|
checkSchemeError({
|
|
@@ -227,8 +225,7 @@ describe('StringScheme', () => {
|
|
|
227
225
|
const errorScheme: Scheme = {
|
|
228
226
|
key: 'a',
|
|
229
227
|
type: 'string',
|
|
230
|
-
|
|
231
|
-
notEnum: null
|
|
228
|
+
notEnum: null as unknown as string[]
|
|
232
229
|
};
|
|
233
230
|
|
|
234
231
|
checkSchemeError({
|
|
@@ -242,8 +239,7 @@ describe('StringScheme', () => {
|
|
|
242
239
|
const errorScheme: Scheme = {
|
|
243
240
|
key: 'a',
|
|
244
241
|
type: 'string',
|
|
245
|
-
|
|
246
|
-
notEnum: 'a'
|
|
242
|
+
notEnum: 'a' as unknown as string[]
|
|
247
243
|
};
|
|
248
244
|
|
|
249
245
|
checkSchemeError({
|
|
@@ -326,8 +322,7 @@ describe('StringScheme', () => {
|
|
|
326
322
|
const errorScheme: Scheme = {
|
|
327
323
|
key: 'a',
|
|
328
324
|
type: 'string',
|
|
329
|
-
|
|
330
|
-
length: null
|
|
325
|
+
length: null as unknown as number
|
|
331
326
|
};
|
|
332
327
|
|
|
333
328
|
checkSchemeError({
|
|
@@ -341,8 +336,7 @@ describe('StringScheme', () => {
|
|
|
341
336
|
const errorScheme: Scheme = {
|
|
342
337
|
key: 'a',
|
|
343
338
|
type: 'string',
|
|
344
|
-
|
|
345
|
-
length: '3'
|
|
339
|
+
length: '3' as unknown as number
|
|
346
340
|
};
|
|
347
341
|
|
|
348
342
|
checkSchemeError({
|
|
@@ -408,8 +402,7 @@ describe('StringScheme', () => {
|
|
|
408
402
|
const errorScheme: Scheme = {
|
|
409
403
|
key: 'a',
|
|
410
404
|
type: 'string',
|
|
411
|
-
|
|
412
|
-
minLength: null
|
|
405
|
+
minLength: null as unknown as number
|
|
413
406
|
};
|
|
414
407
|
|
|
415
408
|
checkSchemeError({
|
|
@@ -437,8 +430,7 @@ describe('StringScheme', () => {
|
|
|
437
430
|
const errorScheme: Scheme = {
|
|
438
431
|
key: 'a',
|
|
439
432
|
type: 'string',
|
|
440
|
-
|
|
441
|
-
minLength: '1'
|
|
433
|
+
minLength: '1' as unknown as number
|
|
442
434
|
};
|
|
443
435
|
|
|
444
436
|
checkSchemeError({
|
|
@@ -512,8 +504,7 @@ describe('StringScheme', () => {
|
|
|
512
504
|
const errorScheme: Scheme = {
|
|
513
505
|
key: 'a',
|
|
514
506
|
type: 'string',
|
|
515
|
-
|
|
516
|
-
maxLength: null
|
|
507
|
+
maxLength: null as unknown as number
|
|
517
508
|
};
|
|
518
509
|
|
|
519
510
|
checkSchemeError({
|
|
@@ -541,8 +532,7 @@ describe('StringScheme', () => {
|
|
|
541
532
|
const errorScheme: Scheme = {
|
|
542
533
|
key: 'a',
|
|
543
534
|
type: 'string',
|
|
544
|
-
|
|
545
|
-
maxLength: '1'
|
|
535
|
+
maxLength: '1' as unknown as number
|
|
546
536
|
};
|
|
547
537
|
|
|
548
538
|
checkSchemeError({
|
|
@@ -616,8 +606,7 @@ describe('StringScheme', () => {
|
|
|
616
606
|
const errorScheme: Scheme = {
|
|
617
607
|
key: 'a',
|
|
618
608
|
type: 'string',
|
|
619
|
-
|
|
620
|
-
format: null
|
|
609
|
+
format: null as unknown as string
|
|
621
610
|
};
|
|
622
611
|
|
|
623
612
|
checkSchemeError({
|
|
@@ -1075,8 +1064,7 @@ describe('StringScheme', () => {
|
|
|
1075
1064
|
const errorScheme: Scheme = {
|
|
1076
1065
|
key: 'a',
|
|
1077
1066
|
type: 'string',
|
|
1078
|
-
|
|
1079
|
-
pattern: null
|
|
1067
|
+
pattern: null as unknown as string
|
|
1080
1068
|
};
|
|
1081
1069
|
|
|
1082
1070
|
checkSchemeError({
|
|
@@ -1092,8 +1080,7 @@ describe('StringScheme', () => {
|
|
|
1092
1080
|
const errorScheme: Scheme = {
|
|
1093
1081
|
key: 'a',
|
|
1094
1082
|
type: 'string',
|
|
1095
|
-
|
|
1096
|
-
pattern: 1
|
|
1083
|
+
pattern: 1 as unknown as string
|
|
1097
1084
|
};
|
|
1098
1085
|
|
|
1099
1086
|
checkSchemeError({
|
|
@@ -1141,8 +1128,7 @@ describe('StringScheme', () => {
|
|
|
1141
1128
|
const errorScheme: Scheme = {
|
|
1142
1129
|
key: 'a',
|
|
1143
1130
|
type: 'string',
|
|
1144
|
-
|
|
1145
|
-
pattern: [null, /ab/]
|
|
1131
|
+
pattern: [null as unknown as RegExp, /ab/]
|
|
1146
1132
|
};
|
|
1147
1133
|
|
|
1148
1134
|
checkSchemeError({
|
|
@@ -1158,8 +1144,7 @@ describe('StringScheme', () => {
|
|
|
1158
1144
|
const errorScheme: Scheme = {
|
|
1159
1145
|
key: 'a',
|
|
1160
1146
|
type: 'string',
|
|
1161
|
-
|
|
1162
|
-
pattern: [1, 3]
|
|
1147
|
+
pattern: [1, 3] as unknown as string[]
|
|
1163
1148
|
};
|
|
1164
1149
|
|
|
1165
1150
|
checkSchemeError({
|
|
@@ -1207,8 +1192,7 @@ describe('StringScheme', () => {
|
|
|
1207
1192
|
const errorScheme: Scheme = {
|
|
1208
1193
|
key: 'a',
|
|
1209
1194
|
type: 'string',
|
|
1210
|
-
|
|
1211
|
-
pattern: new RegExp(null)
|
|
1195
|
+
pattern: new RegExp(null as unknown as string)
|
|
1212
1196
|
};
|
|
1213
1197
|
|
|
1214
1198
|
checkSchemeError({
|
package/spec/common-test-util.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { EjvError, Scheme } from '../src/interfaces';
|
|
|
6
6
|
import { ejv } from '../src/ejv';
|
|
7
7
|
import { ERROR_TYPE } from '../src/constants';
|
|
8
8
|
|
|
9
|
-
export
|
|
9
|
+
export const commonTestRunner = (
|
|
10
10
|
testFnc: (args: unknown) => unknown,
|
|
11
11
|
nullResult: boolean,
|
|
12
12
|
undefinedResult: boolean,
|
|
@@ -14,41 +14,38 @@ export function commonTestRunner (
|
|
|
14
14
|
numberResult: boolean,
|
|
15
15
|
stringResult: boolean,
|
|
16
16
|
arrayResult: boolean,
|
|
17
|
-
objectResult: boolean
|
|
18
|
-
|
|
19
|
-
): boolean {
|
|
17
|
+
objectResult: boolean
|
|
18
|
+
): boolean => {
|
|
20
19
|
return testFnc(null) === nullResult
|
|
21
20
|
&& testFnc(undefined) === undefinedResult
|
|
22
21
|
&& testFnc(true) === booleanResult
|
|
23
22
|
&& testFnc(8) === numberResult
|
|
24
23
|
&& testFnc('hello') === stringResult
|
|
25
24
|
&& testFnc([1, 2, 3]) === arrayResult
|
|
26
|
-
&& testFnc({ a: 1 }) === objectResult
|
|
27
|
-
|
|
28
|
-
}
|
|
25
|
+
&& testFnc({ a: 1 }) === objectResult;
|
|
26
|
+
};
|
|
29
27
|
|
|
30
28
|
export interface TypeTester {
|
|
31
29
|
type: string;
|
|
32
30
|
value: unknown;
|
|
33
31
|
}
|
|
34
32
|
|
|
35
|
-
export const
|
|
33
|
+
export const typeTesterArr: TypeTester[] = [
|
|
36
34
|
{ type: 'boolean', value: true },
|
|
37
35
|
{ type: 'number', value: 123 },
|
|
38
36
|
{ type: 'string', value: 'ejv' },
|
|
39
37
|
{ type: 'object', value: {} },
|
|
40
38
|
{ type: 'date', value: new Date },
|
|
41
39
|
{ type: 'regexp', value: new RegExp('ejv') },
|
|
42
|
-
{ type: 'array', value: [1, 2, 3] }
|
|
43
|
-
{ type: 'buffer', value: new Uint8Array(5) }
|
|
40
|
+
{ type: 'array', value: [1, 2, 3] }
|
|
44
41
|
];
|
|
45
42
|
|
|
46
43
|
|
|
47
|
-
export
|
|
44
|
+
export const checkSchemeError = (param: {
|
|
48
45
|
data: object,
|
|
49
46
|
errorScheme: Scheme,
|
|
50
47
|
message: string,
|
|
51
|
-
}): void {
|
|
48
|
+
}): void => {
|
|
52
49
|
const ejvError: EjvError | null = ejv(param.data, [param.errorScheme]);
|
|
53
50
|
|
|
54
51
|
expect(ejvError).to.be.instanceOf(EjvError);
|
|
@@ -63,4 +60,4 @@ export function checkSchemeError (param: {
|
|
|
63
60
|
|
|
64
61
|
expect(ejvError).to.have.property('isSchemeError', true);
|
|
65
62
|
expect(ejvError).to.have.property('isDataError', false);
|
|
66
|
-
}
|
|
63
|
+
};
|
package/spec/testers.spec.ts
CHANGED
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
arrayTester,
|
|
8
8
|
arrayTypeOfTester,
|
|
9
9
|
booleanTester,
|
|
10
|
-
bufferTester,
|
|
11
10
|
dateFormatTester,
|
|
12
11
|
dateTester,
|
|
13
12
|
dateTimeFormatTester,
|
|
@@ -50,7 +49,6 @@ describe('testers', function () {
|
|
|
50
49
|
true,
|
|
51
50
|
true,
|
|
52
51
|
true,
|
|
53
|
-
true,
|
|
54
52
|
true
|
|
55
53
|
)).to.be.true;
|
|
56
54
|
});
|
|
@@ -114,7 +112,6 @@ describe('testers', function () {
|
|
|
114
112
|
false,
|
|
115
113
|
false,
|
|
116
114
|
false,
|
|
117
|
-
false,
|
|
118
115
|
false
|
|
119
116
|
)).to.be.true;
|
|
120
117
|
});
|
|
@@ -143,7 +140,6 @@ describe('testers', function () {
|
|
|
143
140
|
true,
|
|
144
141
|
false,
|
|
145
142
|
false,
|
|
146
|
-
false,
|
|
147
143
|
false
|
|
148
144
|
)).to.be.true;
|
|
149
145
|
});
|
|
@@ -261,7 +257,6 @@ describe('testers', function () {
|
|
|
261
257
|
false,
|
|
262
258
|
true,
|
|
263
259
|
false,
|
|
264
|
-
false,
|
|
265
260
|
false
|
|
266
261
|
)).to.be.true;
|
|
267
262
|
});
|
|
@@ -608,8 +603,7 @@ describe('testers', function () {
|
|
|
608
603
|
false,
|
|
609
604
|
false,
|
|
610
605
|
true, // array is object
|
|
611
|
-
true
|
|
612
|
-
true // buffer is object
|
|
606
|
+
true
|
|
613
607
|
)).to.be.true;
|
|
614
608
|
});
|
|
615
609
|
|
|
@@ -650,7 +644,6 @@ describe('testers', function () {
|
|
|
650
644
|
false,
|
|
651
645
|
false,
|
|
652
646
|
false,
|
|
653
|
-
false,
|
|
654
647
|
false
|
|
655
648
|
)).to.be.true;
|
|
656
649
|
});
|
|
@@ -785,7 +778,6 @@ describe('testers', function () {
|
|
|
785
778
|
false,
|
|
786
779
|
false,
|
|
787
780
|
true,
|
|
788
|
-
false,
|
|
789
781
|
false
|
|
790
782
|
)).to.be.true;
|
|
791
783
|
});
|
|
@@ -826,7 +818,6 @@ describe('testers', function () {
|
|
|
826
818
|
false,
|
|
827
819
|
false,
|
|
828
820
|
false,
|
|
829
|
-
false,
|
|
830
821
|
false
|
|
831
822
|
)).to.be.true;
|
|
832
823
|
});
|
|
@@ -839,29 +830,4 @@ describe('testers', function () {
|
|
|
839
830
|
});
|
|
840
831
|
});
|
|
841
832
|
});
|
|
842
|
-
|
|
843
|
-
describe('buffer', () => {
|
|
844
|
-
describe('bufferTester()', () => {
|
|
845
|
-
it('common test', () => {
|
|
846
|
-
expect(commonTestRunner(
|
|
847
|
-
bufferTester,
|
|
848
|
-
false,
|
|
849
|
-
false,
|
|
850
|
-
false,
|
|
851
|
-
false,
|
|
852
|
-
false,
|
|
853
|
-
false,
|
|
854
|
-
false,
|
|
855
|
-
true
|
|
856
|
-
)).to.be.true;
|
|
857
|
-
});
|
|
858
|
-
|
|
859
|
-
it('logic test', () => {
|
|
860
|
-
expect(bufferTester(new Uint8Array)).to.be.true;
|
|
861
|
-
expect(bufferTester(new Uint16Array)).to.be.true;
|
|
862
|
-
expect(bufferTester(new Uint32Array)).to.be.true;
|
|
863
|
-
expect(bufferTester(Buffer.from('hello'))).to.be.true;
|
|
864
|
-
});
|
|
865
|
-
});
|
|
866
|
-
});
|
|
867
833
|
});
|
package/src/constants.ts
CHANGED
|
@@ -5,8 +5,7 @@ export enum DATA_TYPE {
|
|
|
5
5
|
OBJECT = 'object',
|
|
6
6
|
DATE = 'date',
|
|
7
7
|
REGEXP = 'regexp',
|
|
8
|
-
ARRAY = 'array'
|
|
9
|
-
BUFFER = 'buffer'
|
|
8
|
+
ARRAY = 'array'
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
export enum NUMBER_FORMAT {
|
|
@@ -59,10 +58,6 @@ export enum ERROR_TYPE {
|
|
|
59
58
|
MIN_LENGTH = 'MIN_LENGTH',
|
|
60
59
|
MAX_LENGTH = 'MAX_LENGTH',
|
|
61
60
|
|
|
62
|
-
BYTE_LENGTH = 'BYTE_LENGTH',
|
|
63
|
-
MIN_BYTE_LENGTH = 'MIN_BYTE_LENGTH',
|
|
64
|
-
MAX_BYTE_LENGTH = 'MAX_BYTE_LENGTH',
|
|
65
|
-
|
|
66
61
|
PATTERN = 'PATTERN',
|
|
67
62
|
PATTERN_ONE_OF = 'PATTERN_ONE_OF',
|
|
68
63
|
|
|
@@ -115,10 +110,6 @@ export enum ERROR_MESSAGE {
|
|
|
115
110
|
MIN_LENGTH_SHOULD_BE_INTEGER = 'minLength should be a integer',
|
|
116
111
|
MAX_LENGTH_SHOULD_BE_INTEGER = 'maxLength should be a integer',
|
|
117
112
|
|
|
118
|
-
BYTE_LENGTH_SHOULD_BE_INTEGER = 'byteLength should be a integer',
|
|
119
|
-
MIN_BYTE_LENGTH_SHOULD_BE_INTEGER = 'minByteLength should be a integer',
|
|
120
|
-
MAX_BYTE_LENGTH_SHOULD_BE_INTEGER = 'maxByteLength should be a integer',
|
|
121
|
-
|
|
122
113
|
PROPERTIES_SHOULD_BE_ARRAY = 'properties should be array',
|
|
123
114
|
PROPERTIES_SHOULD_HAVE_ITEMS = 'properties should have items',
|
|
124
115
|
PROPERTIES_SHOULD_BE_ARRAY_OF_OBJECT = 'properties should be array of object',
|
|
@@ -154,10 +145,6 @@ export enum ERROR_MESSAGE {
|
|
|
154
145
|
MIN_LENGTH = 'the value should be longer than <<1>>', // minLength
|
|
155
146
|
MAX_LENGTH = 'the value should be shorter than <<1>>', // maxLength
|
|
156
147
|
|
|
157
|
-
BYTE_LENGTH = 'the byte length of value should be <<1>>', // length
|
|
158
|
-
MIN_BYTE_LENGTH = 'the byte length of value should be longer than <<1>>', // minLength
|
|
159
|
-
MAX_BYTE_LENGTH = 'the byte length of value should be shorter than <<1>>', // maxLength
|
|
160
|
-
|
|
161
148
|
PATTERN = 'the value should be pattern of <<1>>', // pattern
|
|
162
149
|
PATTERN_ONE_OF = 'the value should be one of pattern of <<1>>', // pattern
|
|
163
150
|
|
package/src/ejv.ts
CHANGED
|
@@ -2,8 +2,6 @@ import {
|
|
|
2
2
|
AllDataType,
|
|
3
3
|
AnyObject,
|
|
4
4
|
ArrayScheme,
|
|
5
|
-
BufferLike,
|
|
6
|
-
BufferScheme,
|
|
7
5
|
DateScheme,
|
|
8
6
|
EjvError,
|
|
9
7
|
InternalOptions,
|
|
@@ -19,7 +17,6 @@ import {
|
|
|
19
17
|
arrayTester,
|
|
20
18
|
arrayTypeOfTester,
|
|
21
19
|
booleanTester,
|
|
22
|
-
bufferLengthTester,
|
|
23
20
|
dateFormatTester,
|
|
24
21
|
dateTester,
|
|
25
22
|
dateTimeFormatTester,
|
|
@@ -35,11 +32,9 @@ import {
|
|
|
35
32
|
integerTester,
|
|
36
33
|
jsonStrTester,
|
|
37
34
|
lengthTester,
|
|
38
|
-
maxByteLengthTester,
|
|
39
35
|
maxDateTester,
|
|
40
36
|
maxLengthTester,
|
|
41
37
|
maxNumberTester,
|
|
42
|
-
minByteLengthTester,
|
|
43
38
|
minDateTester,
|
|
44
39
|
minLengthTester,
|
|
45
40
|
minNumberTester,
|
|
@@ -1700,108 +1695,6 @@ const _ejv = <T> (data: T, schemes: Scheme[], options: InternalOptions): null |
|
|
|
1700
1695
|
}
|
|
1701
1696
|
break;
|
|
1702
1697
|
}
|
|
1703
|
-
|
|
1704
|
-
case DATA_TYPE.BUFFER: {
|
|
1705
|
-
const valueAsBuffer: BufferLike = value as unknown as BufferLike;
|
|
1706
|
-
const bufferScheme: BufferScheme = scheme as BufferScheme;
|
|
1707
|
-
|
|
1708
|
-
if (definedTester(bufferScheme.byteLength)) {
|
|
1709
|
-
const length: number = bufferScheme.byteLength;
|
|
1710
|
-
|
|
1711
|
-
if (!(numberTester(length) && integerTester(length))) {
|
|
1712
|
-
return new EjvError({
|
|
1713
|
-
type: ERROR_TYPE.INVALID_SCHEMES,
|
|
1714
|
-
message: createErrorMsg(ERROR_MESSAGE.BYTE_LENGTH_SHOULD_BE_INTEGER),
|
|
1715
|
-
|
|
1716
|
-
data: data,
|
|
1717
|
-
|
|
1718
|
-
errorScheme: bufferScheme,
|
|
1719
|
-
isSchemeError: true
|
|
1720
|
-
});
|
|
1721
|
-
}
|
|
1722
|
-
|
|
1723
|
-
if (!bufferLengthTester(valueAsBuffer, length)) {
|
|
1724
|
-
result = new EjvError({
|
|
1725
|
-
type: ERROR_TYPE.BYTE_LENGTH,
|
|
1726
|
-
message: createErrorMsg(ERROR_MESSAGE.BYTE_LENGTH, {
|
|
1727
|
-
placeholders: ['' + length]
|
|
1728
|
-
}),
|
|
1729
|
-
|
|
1730
|
-
data,
|
|
1731
|
-
path: _options.path,
|
|
1732
|
-
|
|
1733
|
-
errorScheme: bufferScheme,
|
|
1734
|
-
errorData: value
|
|
1735
|
-
});
|
|
1736
|
-
break;
|
|
1737
|
-
}
|
|
1738
|
-
}
|
|
1739
|
-
|
|
1740
|
-
if (definedTester(bufferScheme.minByteLength)) {
|
|
1741
|
-
const minLength: number = bufferScheme.minByteLength;
|
|
1742
|
-
|
|
1743
|
-
if (!(numberTester(bufferScheme.minByteLength) && integerTester(minLength))) {
|
|
1744
|
-
return new EjvError({
|
|
1745
|
-
type: ERROR_TYPE.INVALID_SCHEMES,
|
|
1746
|
-
message: createErrorMsg(ERROR_MESSAGE.MIN_BYTE_LENGTH_SHOULD_BE_INTEGER),
|
|
1747
|
-
|
|
1748
|
-
data: data,
|
|
1749
|
-
|
|
1750
|
-
errorScheme: bufferScheme,
|
|
1751
|
-
isSchemeError: true
|
|
1752
|
-
});
|
|
1753
|
-
}
|
|
1754
|
-
|
|
1755
|
-
if (!minByteLengthTester(valueAsBuffer, minLength)) {
|
|
1756
|
-
result = new EjvError({
|
|
1757
|
-
type: ERROR_TYPE.MIN_BYTE_LENGTH,
|
|
1758
|
-
message: createErrorMsg(ERROR_MESSAGE.MIN_BYTE_LENGTH, {
|
|
1759
|
-
placeholders: ['' + minLength]
|
|
1760
|
-
}),
|
|
1761
|
-
|
|
1762
|
-
data,
|
|
1763
|
-
path: _options.path,
|
|
1764
|
-
|
|
1765
|
-
errorScheme: bufferScheme,
|
|
1766
|
-
errorData: value
|
|
1767
|
-
});
|
|
1768
|
-
break;
|
|
1769
|
-
}
|
|
1770
|
-
}
|
|
1771
|
-
|
|
1772
|
-
if (definedTester(bufferScheme.maxByteLength)) {
|
|
1773
|
-
const maxLength: number = bufferScheme.maxByteLength;
|
|
1774
|
-
|
|
1775
|
-
if (!(numberTester(bufferScheme.maxByteLength) && integerTester(maxLength))) {
|
|
1776
|
-
return new EjvError({
|
|
1777
|
-
type: ERROR_TYPE.INVALID_SCHEMES,
|
|
1778
|
-
message: createErrorMsg(ERROR_MESSAGE.MAX_BYTE_LENGTH_SHOULD_BE_INTEGER),
|
|
1779
|
-
|
|
1780
|
-
data: data,
|
|
1781
|
-
|
|
1782
|
-
errorScheme: bufferScheme,
|
|
1783
|
-
isSchemeError: true
|
|
1784
|
-
});
|
|
1785
|
-
}
|
|
1786
|
-
|
|
1787
|
-
if (!maxByteLengthTester(valueAsBuffer, maxLength)) {
|
|
1788
|
-
result = new EjvError({
|
|
1789
|
-
type: ERROR_TYPE.MAX_BYTE_LENGTH,
|
|
1790
|
-
message: createErrorMsg(ERROR_MESSAGE.MAX_BYTE_LENGTH, {
|
|
1791
|
-
placeholders: ['' + maxLength]
|
|
1792
|
-
}),
|
|
1793
|
-
|
|
1794
|
-
data,
|
|
1795
|
-
path: _options.path,
|
|
1796
|
-
|
|
1797
|
-
errorScheme: bufferScheme,
|
|
1798
|
-
errorData: value
|
|
1799
|
-
});
|
|
1800
|
-
break;
|
|
1801
|
-
}
|
|
1802
|
-
}
|
|
1803
|
-
break;
|
|
1804
|
-
}
|
|
1805
1698
|
}
|
|
1806
1699
|
|
|
1807
1700
|
if (result) {
|
|
@@ -1827,7 +1720,7 @@ const _ejv = <T> (data: T, schemes: Scheme[], options: InternalOptions): null |
|
|
|
1827
1720
|
return result;
|
|
1828
1721
|
};
|
|
1829
1722
|
|
|
1830
|
-
export
|
|
1723
|
+
export const ejv = (data: object, schemes: Scheme[], options?: Options): null | EjvError => {
|
|
1831
1724
|
// check data itself
|
|
1832
1725
|
if (!definedTester(data) || !objectTester(data) || data === null) {
|
|
1833
1726
|
return new EjvError({
|
|
@@ -1855,4 +1748,4 @@ export function ejv (data: object, schemes: Scheme[], options?: Options): null |
|
|
|
1855
1748
|
}
|
|
1856
1749
|
|
|
1857
1750
|
return _ejv(data, schemes, internalOption);
|
|
1858
|
-
}
|
|
1751
|
+
};
|
package/src/interfaces.ts
CHANGED
|
@@ -66,17 +66,6 @@ export interface ArrayScheme extends CommonScheme {
|
|
|
66
66
|
maxLength?: number;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
export type BufferLike = ArrayBuffer
|
|
71
|
-
| SharedArrayBuffer
|
|
72
|
-
| Exclude<ArrayBufferView, DataView>;
|
|
73
|
-
|
|
74
|
-
export interface BufferScheme extends CommonScheme {
|
|
75
|
-
byteLength?: number;
|
|
76
|
-
minByteLength?: number;
|
|
77
|
-
maxByteLength?: number;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
69
|
export type Scheme =
|
|
81
70
|
BooleanScheme
|
|
82
71
|
| NumberScheme
|
|
@@ -84,8 +73,7 @@ export type Scheme =
|
|
|
84
73
|
| ObjectScheme
|
|
85
74
|
| DateScheme
|
|
86
75
|
| RegExpScheme
|
|
87
|
-
| ArrayScheme
|
|
88
|
-
| BufferScheme;
|
|
76
|
+
| ArrayScheme;
|
|
89
77
|
|
|
90
78
|
|
|
91
79
|
export interface Options {
|