ejv 2.1.3 → 2.1.5
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-KR.md +47 -1
- package/README.md +47 -0
- package/build/cjs/constants.js +10 -0
- package/build/cjs/constants.js.map +1 -1
- package/build/cjs/ejv.js +83 -4
- package/build/cjs/ejv.js.map +1 -1
- package/build/cjs/interfaces.js.map +1 -1
- package/build/cjs/package.json +1 -1
- package/build/cjs/tester.js +145 -125
- package/build/cjs/tester.js.map +1 -1
- package/build/cjs/util.js +15 -16
- package/build/cjs/util.js.map +1 -1
- package/build/constants.d.ts +11 -1
- package/build/ejv.d.ts +1 -1
- package/build/esm/constants.js +10 -0
- package/build/esm/constants.js.map +1 -1
- package/build/esm/ejv.js +83 -3
- package/build/esm/ejv.js.map +1 -1
- package/build/esm/interfaces.js.map +1 -1
- package/build/esm/package.json +1 -1
- package/build/esm/tester.js +93 -76
- package/build/esm/tester.js.map +1 -1
- package/build/esm/util.js +8 -8
- package/build/esm/util.js.map +1 -1
- package/build/interfaces.d.ts +7 -1
- package/build/scripts/create-package-json.js +13 -0
- package/build/scripts/create-package-json.js.map +1 -0
- package/build/tester.d.ts +38 -34
- package/build/util.d.ts +5 -5
- package/eslint.config.mjs +1 -0
- package/package.json +18 -19
- package/scripts/create-package-json.ts +15 -0
- package/spec/ArrayScheme.ts +113 -12
- package/spec/BufferScheme.ts +406 -0
- package/spec/DateScheme.ts +12 -8
- package/spec/NumberScheme.ts +23 -14
- package/spec/ObjectScheme.ts +12 -9
- package/spec/RegExpScheme.ts +2 -2
- package/spec/StringScheme.ts +34 -18
- package/spec/common-test-util.ts +13 -10
- package/spec/testers.spec.ts +35 -1
- package/src/constants.ts +14 -1
- package/src/ejv.ts +109 -2
- package/src/interfaces.ts +13 -1
- package/src/tester.ts +99 -77
- package/src/util.ts +9 -9
package/build/esm/tester.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tester.js","sourceRoot":"","sources":["../../src/tester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,
|
|
1
|
+
{"version":3,"file":"tester.js","sourceRoot":"","sources":["../../src/tester.ts"],"names":[],"mappings":"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"}
|
package/build/esm/util.js
CHANGED
|
@@ -10,13 +10,13 @@ var CloneDataType;
|
|
|
10
10
|
CloneDataType["Date"] = "date";
|
|
11
11
|
CloneDataType["RegExp"] = "regexp";
|
|
12
12
|
})(CloneDataType || (CloneDataType = {}));
|
|
13
|
-
export
|
|
13
|
+
export function isArray(value) {
|
|
14
14
|
return value !== undefined
|
|
15
15
|
&& value !== null
|
|
16
16
|
&& Array.isArray(value);
|
|
17
|
-
}
|
|
17
|
+
}
|
|
18
18
|
// sanitize removes undefined & null fields from object. default false
|
|
19
|
-
export
|
|
19
|
+
export function clone(obj, sanitize) {
|
|
20
20
|
let result;
|
|
21
21
|
if (obj) {
|
|
22
22
|
let type = typeof obj;
|
|
@@ -73,16 +73,16 @@ export const clone = (obj, sanitize) => {
|
|
|
73
73
|
result = obj; // do not copy null & undefined
|
|
74
74
|
}
|
|
75
75
|
return result;
|
|
76
|
-
}
|
|
77
|
-
export
|
|
76
|
+
}
|
|
77
|
+
export function sift(arr) {
|
|
78
78
|
return arr.reduce((acc, cur) => {
|
|
79
79
|
if (cur !== null && cur !== undefined && !acc.includes(cur)) {
|
|
80
80
|
acc.push(cur);
|
|
81
81
|
}
|
|
82
82
|
return acc;
|
|
83
83
|
}, []);
|
|
84
|
-
}
|
|
85
|
-
export
|
|
84
|
+
}
|
|
85
|
+
export function createErrorMsg(errorMsg, param) {
|
|
86
86
|
let result = errorMsg;
|
|
87
87
|
if (param?.placeholders) {
|
|
88
88
|
param.placeholders.forEach((strToReplace, i) => {
|
|
@@ -92,5 +92,5 @@ export const createErrorMsg = (errorMsg, param) => {
|
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
94
|
return result;
|
|
95
|
-
}
|
|
95
|
+
}
|
|
96
96
|
//# sourceMappingURL=util.js.map
|
package/build/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAIA,IAAK,aAUJ;AAVD,WAAK,aAAa;IACjB,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;IACrB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,gCAAe,CAAA;IACf,8BAAa,CAAA;IACb,kCAAiB,CAAA;AAClB,CAAC,EAVI,aAAa,KAAb,aAAa,QAUjB;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
|
package/build/interfaces.d.ts
CHANGED
|
@@ -43,7 +43,13 @@ export interface ArrayScheme extends CommonScheme {
|
|
|
43
43
|
minLength?: number;
|
|
44
44
|
maxLength?: number;
|
|
45
45
|
}
|
|
46
|
-
export type
|
|
46
|
+
export type BufferLike = ArrayBuffer | SharedArrayBuffer | Exclude<ArrayBufferView, DataView>;
|
|
47
|
+
export interface BufferScheme extends CommonScheme {
|
|
48
|
+
byteLength?: number;
|
|
49
|
+
minByteLength?: number;
|
|
50
|
+
maxByteLength?: number;
|
|
51
|
+
}
|
|
52
|
+
export type Scheme = BooleanScheme | NumberScheme | StringScheme | ObjectScheme | DateScheme | RegExpScheme | ArrayScheme | BufferScheme;
|
|
47
53
|
export interface Options {
|
|
48
54
|
customErrorMsg?: {
|
|
49
55
|
[key in ERROR_TYPE]?: string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const node_path_1 = require("node:path");
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
console.log('* create-package-json');
|
|
6
|
+
const buildPath = (0, node_path_1.join)('.', 'build');
|
|
7
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(buildPath, 'cjs', 'package.json'), JSON.stringify({
|
|
8
|
+
type: 'commonjs'
|
|
9
|
+
}));
|
|
10
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(buildPath, 'esm', 'package.json'), JSON.stringify({
|
|
11
|
+
type: 'module'
|
|
12
|
+
}));
|
|
13
|
+
//# sourceMappingURL=create-package-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-package-json.js","sourceRoot":"","sources":["../../scripts/create-package-json.ts"],"names":[],"mappings":";;AAAA,yCAAiC;AACjC,qCAAwC;AAGxC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAErC,MAAM,SAAS,GAAW,IAAA,gBAAI,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAE7C,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;IACpE,IAAI,EAAE,UAAU;CAChB,CAAC,CAAC,CAAC;AAEJ,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;IACpE,IAAI,EAAE,QAAQ;CACd,CAAC,CAAC,CAAC"}
|
package/build/tester.d.ts
CHANGED
|
@@ -1,35 +1,39 @@
|
|
|
1
1
|
import { DATA_TYPE } from './constants';
|
|
2
|
-
import { AnyObject } from './interfaces';
|
|
3
|
-
export declare
|
|
4
|
-
export declare
|
|
5
|
-
export declare
|
|
6
|
-
export declare
|
|
7
|
-
export declare
|
|
8
|
-
export declare
|
|
9
|
-
export declare
|
|
10
|
-
export declare
|
|
11
|
-
export declare
|
|
12
|
-
export declare
|
|
13
|
-
export declare
|
|
14
|
-
export declare
|
|
15
|
-
export declare
|
|
16
|
-
export declare
|
|
17
|
-
export declare
|
|
18
|
-
export declare
|
|
19
|
-
export declare
|
|
20
|
-
export declare
|
|
21
|
-
export declare
|
|
22
|
-
export declare
|
|
23
|
-
export declare
|
|
24
|
-
export declare
|
|
25
|
-
export declare
|
|
26
|
-
export declare
|
|
27
|
-
export declare
|
|
28
|
-
export declare
|
|
29
|
-
export declare
|
|
30
|
-
export declare
|
|
31
|
-
export declare
|
|
32
|
-
export declare
|
|
33
|
-
export declare
|
|
34
|
-
export declare
|
|
35
|
-
export declare
|
|
2
|
+
import { AnyObject, BufferLike } from './interfaces';
|
|
3
|
+
export declare function typeTester(value: unknown, type: DATA_TYPE): boolean;
|
|
4
|
+
export declare function definedTester(value: unknown): value is boolean;
|
|
5
|
+
export declare function enumTester<T>(value: T, arr: T[]): boolean;
|
|
6
|
+
export declare function notEnumTester<T>(value: T, arr: T[]): boolean;
|
|
7
|
+
export declare function lengthTester(value: string | unknown[], length: number): boolean;
|
|
8
|
+
export declare function minLengthTester(value: string | unknown[], minLength: number): boolean;
|
|
9
|
+
export declare function maxLengthTester(value: string | unknown[], maxLength: number): boolean;
|
|
10
|
+
export declare function bufferLengthTester(value: BufferLike, length: number): boolean;
|
|
11
|
+
export declare function minByteLengthTester(value: BufferLike, minLength: number): boolean;
|
|
12
|
+
export declare function maxByteLengthTester(value: BufferLike, maxLength: number): boolean;
|
|
13
|
+
export declare function booleanTester(value: unknown): value is boolean;
|
|
14
|
+
export declare function numberTester(value: unknown): value is number;
|
|
15
|
+
export declare function integerTester(value: number): boolean;
|
|
16
|
+
export declare function indexTester(value: number): value is number;
|
|
17
|
+
export declare function minNumberTester(value: number, min: number): boolean;
|
|
18
|
+
export declare function exclusiveMinNumberTester(value: number, min: number): boolean;
|
|
19
|
+
export declare function maxNumberTester(value: number, max: number): boolean;
|
|
20
|
+
export declare function exclusiveMaxNumberTester(value: number, max: number): boolean;
|
|
21
|
+
export declare function stringTester(value: unknown): value is string;
|
|
22
|
+
export declare function stringRegExpTester(value: string, regExp: string | RegExp): boolean;
|
|
23
|
+
export declare function emailTester(value: string): boolean;
|
|
24
|
+
export declare function jsonStrTester(value: string): boolean;
|
|
25
|
+
export declare function dateFormatTester(value: string): boolean;
|
|
26
|
+
export declare function timeFormatTester(value: string): boolean;
|
|
27
|
+
export declare function dateTimeFormatTester(value: string): boolean;
|
|
28
|
+
export declare function objectTester(value: unknown): boolean;
|
|
29
|
+
export declare function hasPropertyTester(value: AnyObject): boolean;
|
|
30
|
+
export declare function dateTester(value: unknown): value is Date;
|
|
31
|
+
export declare function minDateTester(value: Date, min: Date): boolean;
|
|
32
|
+
export declare function exclusiveMinDateTester(value: Date, min: Date): boolean;
|
|
33
|
+
export declare function maxDateTester(value: Date, max: Date): boolean;
|
|
34
|
+
export declare function exclusiveMaxDateTester(value: Date, max: Date): boolean;
|
|
35
|
+
export declare function arrayTester(value: unknown): value is unknown[];
|
|
36
|
+
export declare function arrayTypeOfTester(array: unknown[], type: DATA_TYPE): boolean;
|
|
37
|
+
export declare function uniqueItemsTester(array: unknown[]): boolean;
|
|
38
|
+
export declare function regExpTester(value: unknown): value is RegExp;
|
|
39
|
+
export declare function bufferTester(value: unknown): value is BufferLike;
|
package/build/util.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ERROR_MESSAGE } from './constants';
|
|
2
|
-
export declare
|
|
3
|
-
export declare
|
|
4
|
-
export declare
|
|
5
|
-
export declare
|
|
2
|
+
export declare function isArray<T>(value: unknown): value is T[];
|
|
3
|
+
export declare function clone<T>(obj: T, sanitize?: boolean): T;
|
|
4
|
+
export declare function sift<T>(arr: T[]): T[];
|
|
5
|
+
export declare function createErrorMsg(errorMsg: ERROR_MESSAGE, param?: {
|
|
6
6
|
placeholders?: (string | number)[];
|
|
7
|
-
})
|
|
7
|
+
}): string;
|
package/eslint.config.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ejv",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.5",
|
|
4
4
|
"description": "Easy JSON Validator",
|
|
5
5
|
"exports": {
|
|
6
6
|
"require": "./build/cjs/index.js",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"clean": "rimraf ./build",
|
|
14
14
|
"prebuild": "yarn clean",
|
|
15
15
|
"build:types": "tsc -p tsconfig.types.json",
|
|
16
|
-
"build:cjs": "tsc -p tsconfig.cjs.json
|
|
17
|
-
"build:esm": "tsc -p tsconfig.esm.json
|
|
16
|
+
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
17
|
+
"build:esm": "tsc -p tsconfig.esm.json",
|
|
18
18
|
"build": "yarn build:types&&yarn build:cjs&&yarn build:esm",
|
|
19
|
-
"postbuild": "tsc -p tsconfig.scripts.json&&node build/scripts/add-js-extensions",
|
|
19
|
+
"postbuild": "tsc -p tsconfig.scripts.json&&node build/scripts/add-js-extensions&&node build/scripts/create-package-json",
|
|
20
20
|
"test": "mocha",
|
|
21
21
|
"lint": "eslint"
|
|
22
22
|
},
|
|
@@ -36,21 +36,20 @@
|
|
|
36
36
|
},
|
|
37
37
|
"homepage": "https://github.com/han41858/ejv#readme",
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@eslint/js": "^
|
|
40
|
-
"@types/chai": "^5.2.
|
|
39
|
+
"@eslint/js": "^10.0.1",
|
|
40
|
+
"@types/chai": "^5.2.3",
|
|
41
41
|
"@types/mocha": "^10.0.10",
|
|
42
|
-
"@types/node": "
|
|
43
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
44
|
-
"@typescript-eslint/parser": "^8.
|
|
45
|
-
"chai": "^
|
|
46
|
-
"eslint": "^
|
|
42
|
+
"@types/node": "24.1.0",
|
|
43
|
+
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
44
|
+
"@typescript-eslint/parser": "^8.54.0",
|
|
45
|
+
"chai": "^6.2.2",
|
|
46
|
+
"eslint": "^10.0.0",
|
|
47
47
|
"eslint-plugin-chai-friendly": "^1.1.0",
|
|
48
|
-
"globals": "^
|
|
49
|
-
"mocha": "^11.7.
|
|
50
|
-
"rimraf": "^6.
|
|
51
|
-
"tsx": "^4.
|
|
52
|
-
"typescript": "^5.
|
|
53
|
-
"typescript-eslint": "^8.
|
|
54
|
-
}
|
|
55
|
-
"packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447"
|
|
48
|
+
"globals": "^17.3.0",
|
|
49
|
+
"mocha": "^11.7.5",
|
|
50
|
+
"rimraf": "^6.1.2",
|
|
51
|
+
"tsx": "^4.21.0",
|
|
52
|
+
"typescript": "^5.9.3",
|
|
53
|
+
"typescript-eslint": "^8.54.0"
|
|
54
|
+
}
|
|
56
55
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { writeFileSync } from 'node:fs';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
console.log('* create-package-json');
|
|
6
|
+
|
|
7
|
+
const buildPath: string = join('.', 'build');
|
|
8
|
+
|
|
9
|
+
writeFileSync(join(buildPath, 'cjs', 'package.json'), JSON.stringify({
|
|
10
|
+
type: 'commonjs'
|
|
11
|
+
}));
|
|
12
|
+
|
|
13
|
+
writeFileSync(join(buildPath, 'esm', 'package.json'), JSON.stringify({
|
|
14
|
+
type: 'module'
|
|
15
|
+
}));
|
package/spec/ArrayScheme.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,
|
|
9
|
+
import { checkSchemeError, TYPE_TESTER_ARR, TypeTester } from './common-test-util';
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
describe('ArrayScheme', () => {
|
|
13
13
|
describe('type', () => {
|
|
14
14
|
describe('mismatch', () => {
|
|
15
|
-
|
|
15
|
+
TYPE_TESTER_ARR
|
|
16
16
|
.filter((obj: TypeTester): boolean => obj.type !== 'array')
|
|
17
17
|
.forEach((obj: TypeTester): void => {
|
|
18
18
|
it(obj.type, () => {
|
|
@@ -191,6 +191,100 @@ describe('ArrayScheme', () => {
|
|
|
191
191
|
});
|
|
192
192
|
});
|
|
193
193
|
|
|
194
|
+
describe('length', () => {
|
|
195
|
+
describe('check parameter', () => {
|
|
196
|
+
const data = {
|
|
197
|
+
a: [1, 2, 3]
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
it('undefined is ok', () => {
|
|
201
|
+
expect(ejv(data, [{
|
|
202
|
+
key: 'a',
|
|
203
|
+
type: 'array',
|
|
204
|
+
length: undefined
|
|
205
|
+
}])).to.be.null;
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
it('null', () => {
|
|
209
|
+
checkSchemeError({
|
|
210
|
+
data: data,
|
|
211
|
+
errorScheme: {
|
|
212
|
+
key: 'a',
|
|
213
|
+
type: 'array',
|
|
214
|
+
// @ts-expect-error: null
|
|
215
|
+
length: null
|
|
216
|
+
},
|
|
217
|
+
|
|
218
|
+
message: createErrorMsg(ERROR_MESSAGE.LENGTH_SHOULD_BE_INTEGER)
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
it('float number', () => {
|
|
223
|
+
checkSchemeError({
|
|
224
|
+
data: data,
|
|
225
|
+
errorScheme: {
|
|
226
|
+
key: 'a',
|
|
227
|
+
type: 'array',
|
|
228
|
+
length: 1.5
|
|
229
|
+
},
|
|
230
|
+
|
|
231
|
+
message: createErrorMsg(ERROR_MESSAGE.LENGTH_SHOULD_BE_INTEGER)
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
it('string', () => {
|
|
236
|
+
checkSchemeError({
|
|
237
|
+
data: data,
|
|
238
|
+
errorScheme: {
|
|
239
|
+
key: 'a',
|
|
240
|
+
type: 'array',
|
|
241
|
+
// @ts-expect-error: type mismatch
|
|
242
|
+
length: '1'
|
|
243
|
+
},
|
|
244
|
+
|
|
245
|
+
message: createErrorMsg(ERROR_MESSAGE.LENGTH_SHOULD_BE_INTEGER)
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
it('fail', () => {
|
|
251
|
+
const value = [1, 2, 3];
|
|
252
|
+
const testData = {
|
|
253
|
+
a: value
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
const error: EjvError | null = ejv(testData, [{
|
|
257
|
+
key: 'a',
|
|
258
|
+
type: 'array',
|
|
259
|
+
length: 2
|
|
260
|
+
}]);
|
|
261
|
+
|
|
262
|
+
expect(error).to.be.instanceof(EjvError);
|
|
263
|
+
|
|
264
|
+
if (!error) {
|
|
265
|
+
throw new Error('spec failed');
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
expect(error.type).to.be.eql(ERROR_TYPE.LENGTH);
|
|
269
|
+
expect(error.message).to.be.eql(createErrorMsg(ERROR_MESSAGE.LENGTH, {
|
|
270
|
+
placeholders: [2]
|
|
271
|
+
}));
|
|
272
|
+
expect(error.path).to.be.eql('a');
|
|
273
|
+
expect(error.data).to.be.deep.equal(testData);
|
|
274
|
+
expect(error.errorData).to.be.ordered.members(value);
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
it('ok', () => {
|
|
278
|
+
expect(ejv({
|
|
279
|
+
a: [1, 2, 3]
|
|
280
|
+
}, [{
|
|
281
|
+
key: 'a',
|
|
282
|
+
type: 'array',
|
|
283
|
+
length: 3
|
|
284
|
+
}])).to.be.null;
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
|
|
194
288
|
describe('minLength', () => {
|
|
195
289
|
describe('check parameter', () => {
|
|
196
290
|
const data = {
|
|
@@ -211,7 +305,8 @@ describe('ArrayScheme', () => {
|
|
|
211
305
|
errorScheme: {
|
|
212
306
|
key: 'a',
|
|
213
307
|
type: 'array',
|
|
214
|
-
|
|
308
|
+
// @ts-expect-error: null
|
|
309
|
+
minLength: null
|
|
215
310
|
},
|
|
216
311
|
|
|
217
312
|
message: createErrorMsg(ERROR_MESSAGE.MIN_LENGTH_SHOULD_BE_INTEGER)
|
|
@@ -237,7 +332,8 @@ describe('ArrayScheme', () => {
|
|
|
237
332
|
errorScheme: {
|
|
238
333
|
key: 'a',
|
|
239
334
|
type: 'array',
|
|
240
|
-
|
|
335
|
+
// @ts-expect-error: type mismatch
|
|
336
|
+
minLength: '1'
|
|
241
337
|
},
|
|
242
338
|
|
|
243
339
|
message: createErrorMsg(ERROR_MESSAGE.MIN_LENGTH_SHOULD_BE_INTEGER)
|
|
@@ -311,7 +407,8 @@ describe('ArrayScheme', () => {
|
|
|
311
407
|
errorScheme: {
|
|
312
408
|
key: 'a',
|
|
313
409
|
type: 'array',
|
|
314
|
-
|
|
410
|
+
// @ts-expect-error: null
|
|
411
|
+
maxLength: null
|
|
315
412
|
},
|
|
316
413
|
|
|
317
414
|
message: createErrorMsg(ERROR_MESSAGE.MAX_LENGTH_SHOULD_BE_INTEGER)
|
|
@@ -337,7 +434,8 @@ describe('ArrayScheme', () => {
|
|
|
337
434
|
errorScheme: {
|
|
338
435
|
key: 'a',
|
|
339
436
|
type: 'array',
|
|
340
|
-
|
|
437
|
+
// @ts-expect-error: type mismatch
|
|
438
|
+
maxLength: '1'
|
|
341
439
|
},
|
|
342
440
|
|
|
343
441
|
message: createErrorMsg(ERROR_MESSAGE.MAX_LENGTH_SHOULD_BE_INTEGER)
|
|
@@ -411,7 +509,8 @@ describe('ArrayScheme', () => {
|
|
|
411
509
|
errorScheme: {
|
|
412
510
|
key: 'a',
|
|
413
511
|
type: 'array',
|
|
414
|
-
|
|
512
|
+
// @ts-expect-error: null
|
|
513
|
+
unique: null
|
|
415
514
|
},
|
|
416
515
|
|
|
417
516
|
message: createErrorMsg(ERROR_MESSAGE.UNIQUE_SHOULD_BE_BOOLEAN)
|
|
@@ -424,7 +523,8 @@ describe('ArrayScheme', () => {
|
|
|
424
523
|
errorScheme: {
|
|
425
524
|
key: 'a',
|
|
426
525
|
type: 'array',
|
|
427
|
-
|
|
526
|
+
// @ts-expect-error: type mismatch
|
|
527
|
+
unique: 'hello'
|
|
428
528
|
},
|
|
429
529
|
|
|
430
530
|
message: createErrorMsg(ERROR_MESSAGE.UNIQUE_SHOULD_BE_BOOLEAN)
|
|
@@ -559,7 +659,8 @@ describe('ArrayScheme', () => {
|
|
|
559
659
|
errorScheme: {
|
|
560
660
|
key: 'a',
|
|
561
661
|
type: 'array',
|
|
562
|
-
|
|
662
|
+
// @ts-expect-error: null
|
|
663
|
+
items: null
|
|
563
664
|
},
|
|
564
665
|
|
|
565
666
|
message: createErrorMsg(ERROR_MESSAGE.INVALID_ITEMS_SCHEME, {
|
|
@@ -728,7 +829,7 @@ describe('ArrayScheme', () => {
|
|
|
728
829
|
type: 'array',
|
|
729
830
|
items: {
|
|
730
831
|
type: invalidDataType
|
|
731
|
-
}
|
|
832
|
+
}
|
|
732
833
|
},
|
|
733
834
|
|
|
734
835
|
message: createErrorMsg(ERROR_MESSAGE.SCHEMES_HAS_INVALID_TYPE, {
|
|
@@ -950,7 +1051,7 @@ describe('ArrayScheme', () => {
|
|
|
950
1051
|
});
|
|
951
1052
|
|
|
952
1053
|
it('nested array - single scheme', () => {
|
|
953
|
-
const arr
|
|
1054
|
+
const arr = ['ok', null];
|
|
954
1055
|
const testObj = {
|
|
955
1056
|
a: [{
|
|
956
1057
|
b: arr
|
|
@@ -984,7 +1085,7 @@ describe('ArrayScheme', () => {
|
|
|
984
1085
|
});
|
|
985
1086
|
|
|
986
1087
|
it('nested array - multiple chemes', () => {
|
|
987
|
-
const arr
|
|
1088
|
+
const arr = ['ok', null];
|
|
988
1089
|
const testObj = {
|
|
989
1090
|
a: [{
|
|
990
1091
|
b: arr
|