ejv 2.0.4 → 2.1.0
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/.mocharc.json +1 -1
- package/CHANGELOG.md +18 -0
- package/README-KR.md +166 -165
- package/README.md +182 -178
- package/eslint.config.mjs +59 -0
- package/package.json +18 -13
- package/spec/ArrayScheme.ts +46 -46
- package/spec/CommonScheme.ts +15 -15
- package/spec/DateScheme.ts +22 -22
- package/spec/NumberScheme.ts +229 -121
- package/spec/ObjectScheme.ts +22 -22
- package/spec/RegExpScheme.ts +5 -5
- package/spec/StringScheme.ts +223 -126
- package/spec/common-test-util.ts +2 -2
- package/spec/ejv.spec.ts +20 -20
- package/spec/testers.spec.ts +5 -5
- package/src/constants.ts +12 -5
- package/src/ejv.ts +291 -202
- package/src/index.ts +1 -1
- package/src/interfaces.ts +11 -12
- package/src/tester.ts +14 -10
- package/src/util.ts +2 -2
- package/.eslintrc.json +0 -88
- package/build/cjs/constants.js +0 -118
- package/build/cjs/constants.js.map +0 -1
- package/build/cjs/ejv.js +0 -1266
- package/build/cjs/ejv.js.map +0 -1
- package/build/cjs/index.js +0 -14
- package/build/cjs/index.js.map +0 -1
- package/build/cjs/interfaces.js +0 -29
- package/build/cjs/interfaces.js.map +0 -1
- package/build/cjs/package.json +0 -1
- package/build/cjs/tester.js +0 -274
- package/build/cjs/tester.js.map +0 -1
- package/build/cjs/util.js +0 -103
- package/build/cjs/util.js.map +0 -1
- package/build/constants.d.ts +0 -101
- package/build/ejv.d.ts +0 -2
- package/build/esm/constants.js +0 -115
- package/build/esm/constants.js.map +0 -1
- package/build/esm/ejv.js +0 -1264
- 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/interfaces.js +0 -33
- package/build/esm/interfaces.js.map +0 -1
- package/build/esm/package.json +0 -1
- package/build/esm/tester.js +0 -240
- package/build/esm/tester.js.map +0 -1
- package/build/esm/util.js +0 -96
- package/build/esm/util.js.map +0 -1
- package/build/index.d.ts +0 -3
- package/build/interfaces.d.ts +0 -76
- package/build/scripts/add-js-extensions.js +0 -46
- package/build/scripts/add-js-extensions.js.map +0 -1
- package/build/tester.d.ts +0 -33
- package/build/util.d.ts +0 -7
package/.mocharc.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
# 2.1.0
|
|
4
|
+
|
|
5
|
+
- improvement
|
|
6
|
+
- `notEnum` added
|
|
7
|
+
- README indent optimized
|
|
8
|
+
- dependencies version up
|
|
9
|
+
- `typescript@5.6.2`
|
|
10
|
+
- `eslint@9.12.0`
|
|
11
|
+
|
|
12
|
+
# 2.0.5
|
|
13
|
+
|
|
14
|
+
- bug fix
|
|
15
|
+
- `min`, `max` error fix
|
|
16
|
+
|
|
17
|
+
# 2.0.3
|
|
18
|
+
|
|
19
|
+
- spec error fix
|
|
20
|
+
|
|
3
21
|
# 2.0.2
|
|
4
22
|
|
|
5
23
|
- improvement
|
package/README-KR.md
CHANGED
|
@@ -45,16 +45,17 @@ var ejv = _ejv.ejv;
|
|
|
45
45
|
- TypeScript
|
|
46
46
|
|
|
47
47
|
```typescript
|
|
48
|
-
const error
|
|
49
|
-
a
|
|
48
|
+
const error: null | EjvError = ejv({
|
|
49
|
+
a: 10
|
|
50
50
|
}, [{
|
|
51
|
-
key
|
|
52
|
-
type
|
|
51
|
+
key: 'a',
|
|
52
|
+
type: 'number'
|
|
53
53
|
}]);
|
|
54
54
|
|
|
55
55
|
if (!error) {
|
|
56
56
|
console.log('검사 성공');
|
|
57
|
-
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
58
59
|
console.log('검사 실패');
|
|
59
60
|
}
|
|
60
61
|
```
|
|
@@ -63,10 +64,10 @@ if (!error) {
|
|
|
63
64
|
|
|
64
65
|
```javascript
|
|
65
66
|
var error = ejv({
|
|
66
|
-
a
|
|
67
|
+
a: 10
|
|
67
68
|
}, [{
|
|
68
|
-
key
|
|
69
|
-
type
|
|
69
|
+
key: 'a',
|
|
70
|
+
type: 'number'
|
|
70
71
|
}]);
|
|
71
72
|
|
|
72
73
|
if (!error) {
|
|
@@ -111,8 +112,8 @@ JSON 객체에 있는 `a` 프로퍼티를 검사하려면 `key : 'a'`라고 지
|
|
|
111
112
|
ejv({
|
|
112
113
|
// 빈 객체
|
|
113
114
|
}, [{
|
|
114
|
-
key
|
|
115
|
-
optional
|
|
115
|
+
key: 'a',
|
|
116
|
+
optional: true // 프로퍼티가 선언되지 않아도 에러가 발생하지 않습니다.
|
|
116
117
|
}]);
|
|
117
118
|
```
|
|
118
119
|
|
|
@@ -123,10 +124,10 @@ ejv({
|
|
|
123
124
|
|
|
124
125
|
```typescript
|
|
125
126
|
ejv({
|
|
126
|
-
a
|
|
127
|
+
a: null
|
|
127
128
|
}, [{
|
|
128
|
-
key
|
|
129
|
-
nullable
|
|
129
|
+
key: 'a',
|
|
130
|
+
nullable: true
|
|
130
131
|
}]);
|
|
131
132
|
```
|
|
132
133
|
|
|
@@ -137,36 +138,36 @@ ejv({
|
|
|
137
138
|
|
|
138
139
|
```typescript
|
|
139
140
|
ejv({
|
|
140
|
-
a
|
|
141
|
-
b
|
|
141
|
+
a: 1,
|
|
142
|
+
b: 'hello'
|
|
142
143
|
}, [{
|
|
143
|
-
key
|
|
144
|
-
type
|
|
145
|
-
enum
|
|
144
|
+
key: 'a',
|
|
145
|
+
type: 'number',
|
|
146
|
+
enum: [1, 2, 3] // 1, 2, 3 값을 허용합니다.
|
|
146
147
|
}, {
|
|
147
|
-
key
|
|
148
|
-
type
|
|
149
|
-
enum
|
|
148
|
+
key: 'b',
|
|
149
|
+
type: 'string',
|
|
150
|
+
enum: ['hello', 'ejv'] // 'hello'나 'ejv' 값을 허용합니다.
|
|
150
151
|
}]);
|
|
151
152
|
```
|
|
152
153
|
|
|
153
|
-
- `
|
|
154
|
+
- `notEnumse : number[] | string[]`
|
|
154
155
|
|
|
155
156
|
배열로 전달되는 값을 허용하지 않습니다. 이 옵션의 결과는 `enum` 옵션의 결과와 반대입니다.
|
|
156
157
|
이 옵션은 `type : number`과 `type : string` 검사규칙에 사용할 수 있습니다.
|
|
157
158
|
|
|
158
159
|
```typescript
|
|
159
160
|
ejv({
|
|
160
|
-
a
|
|
161
|
-
b
|
|
161
|
+
a: 1,
|
|
162
|
+
b: 'hello'
|
|
162
163
|
}, [{
|
|
163
|
-
key
|
|
164
|
-
type
|
|
165
|
-
|
|
164
|
+
key: 'a',
|
|
165
|
+
type: 'number',
|
|
166
|
+
notEnum: [1, 2, 3] // 1, 2, 3 값을 허용하지 않습니다.
|
|
166
167
|
}, {
|
|
167
|
-
key
|
|
168
|
-
type
|
|
169
|
-
|
|
168
|
+
key: 'b',
|
|
169
|
+
type: 'string',
|
|
170
|
+
notEnum: ['hello', 'ejv'] // 'hello'나 'ejv' 값을 허용하지 않습니다.
|
|
170
171
|
}]);
|
|
171
172
|
```
|
|
172
173
|
|
|
@@ -185,17 +186,17 @@ ejv({
|
|
|
185
186
|
|
|
186
187
|
```typescript
|
|
187
188
|
ejv({
|
|
188
|
-
num1
|
|
189
|
-
num2
|
|
189
|
+
num1: 10,
|
|
190
|
+
num2: 10
|
|
190
191
|
}, [{
|
|
191
|
-
key
|
|
192
|
-
type
|
|
193
|
-
min
|
|
192
|
+
key: 'num1',
|
|
193
|
+
type: 'number',
|
|
194
|
+
min: 10 // 성공
|
|
194
195
|
}, {
|
|
195
|
-
key
|
|
196
|
-
type
|
|
197
|
-
min
|
|
198
|
-
exclusiveMin
|
|
196
|
+
key: 'num2',
|
|
197
|
+
type: 'number',
|
|
198
|
+
min: 10,
|
|
199
|
+
exclusiveMin: true // 실패
|
|
199
200
|
}]);
|
|
200
201
|
```
|
|
201
202
|
|
|
@@ -212,17 +213,17 @@ ejv({
|
|
|
212
213
|
|
|
213
214
|
```typescript
|
|
214
215
|
ejv({
|
|
215
|
-
num1
|
|
216
|
-
num2
|
|
216
|
+
num1: 10,
|
|
217
|
+
num2: 10
|
|
217
218
|
}, [{
|
|
218
|
-
key
|
|
219
|
-
type
|
|
220
|
-
max
|
|
219
|
+
key: 'num1',
|
|
220
|
+
type: 'number',
|
|
221
|
+
max: 10 // 성공
|
|
221
222
|
}, {
|
|
222
|
-
key
|
|
223
|
-
type
|
|
224
|
-
max
|
|
225
|
-
exclusiveMax
|
|
223
|
+
key: 'num2',
|
|
224
|
+
type: 'number',
|
|
225
|
+
max: 10,
|
|
226
|
+
exclusiveMax: true // 실패
|
|
226
227
|
}]);
|
|
227
228
|
```
|
|
228
229
|
|
|
@@ -232,10 +233,10 @@ ejv({
|
|
|
232
233
|
배열로 지정된 경우에는 주어진 형식 중 하나에 해당되면 검사를 통과합니다.
|
|
233
234
|
사용할 수 있는 값은 다음과 같습니다.
|
|
234
235
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
`'integer'
|
|
238
|
-
`'index'
|
|
236
|
+
포맷 | 예
|
|
237
|
+
-------------|--------------------------------------------------------------------------
|
|
238
|
+
`'integer'` | 정수만 허용합니다. ex) -1, 0, 1, ...
|
|
239
|
+
`'index'` | 인덱스만 허용합니다. `format : 'integer', min : 0`을 설정한 것과 같습니다. ex) 0, 1, 2, ...
|
|
239
240
|
|
|
240
241
|
#### `'string'` 타입 옵션
|
|
241
242
|
|
|
@@ -243,12 +244,12 @@ ejv({
|
|
|
243
244
|
|
|
244
245
|
문자열의 형식을 검사합니다. 배열로 지정된 경우에는 주어진 형식 중 하나에 해당되면 검사를 통과합니다. 사용할 수 있는 값은 다음과 같습니다.
|
|
245
246
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
`'email'
|
|
249
|
-
`'date'
|
|
250
|
-
`'time'
|
|
251
|
-
`'date-time'
|
|
247
|
+
포맷 | 예
|
|
248
|
+
---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
249
|
+
`'email'` | 이메일 형식인지 검사합니다. [RFC 5322 3.4.1](https://tools.ietf.org/html/rfc5322#section-3.4.1) 스펙을 기준으로 합니다. ex) `'email@domain.com'`
|
|
250
|
+
`'date'` | 날짜 형식인지 검사합니다. [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) 스펙을 기준으로 합니다. ex) `'2018-12-29'`
|
|
251
|
+
`'time'` | 시간 형식인지 검사합니다. [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) 스펙을 기준으로 합니다. ex) `'21:07:35'`
|
|
252
|
+
`'date-time'` | 날짜-시간 형식인지 검사합니다. [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) 스펙과 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) 스펙을 기준으로 합니다. ex) `'2018-12-29T21:07:35Z'`
|
|
252
253
|
|
|
253
254
|
- `length : number`
|
|
254
255
|
|
|
@@ -256,11 +257,11 @@ ejv({
|
|
|
256
257
|
|
|
257
258
|
```typescript
|
|
258
259
|
ejv({
|
|
259
|
-
str
|
|
260
|
+
str: 'hello'
|
|
260
261
|
}, [{
|
|
261
|
-
key
|
|
262
|
-
type
|
|
263
|
-
length
|
|
262
|
+
key: 'str',
|
|
263
|
+
type: 'string',
|
|
264
|
+
length: 5
|
|
264
265
|
}]);
|
|
265
266
|
````
|
|
266
267
|
|
|
@@ -270,11 +271,11 @@ ejv({
|
|
|
270
271
|
|
|
271
272
|
```typescript
|
|
272
273
|
ejv({
|
|
273
|
-
str
|
|
274
|
+
str: 'hello'
|
|
274
275
|
}, [{
|
|
275
|
-
key
|
|
276
|
-
type
|
|
277
|
-
minLength
|
|
276
|
+
key: 'str',
|
|
277
|
+
type: 'string',
|
|
278
|
+
minLength: 5
|
|
278
279
|
}]);
|
|
279
280
|
````
|
|
280
281
|
|
|
@@ -284,11 +285,11 @@ ejv({
|
|
|
284
285
|
|
|
285
286
|
```typescript
|
|
286
287
|
ejv({
|
|
287
|
-
str
|
|
288
|
+
str: 'hello'
|
|
288
289
|
}, [{
|
|
289
|
-
key
|
|
290
|
-
type
|
|
291
|
-
maxLength
|
|
290
|
+
key: 'str',
|
|
291
|
+
type: 'string',
|
|
292
|
+
maxLength: 5
|
|
292
293
|
}]);
|
|
293
294
|
````
|
|
294
295
|
|
|
@@ -300,23 +301,23 @@ ejv({
|
|
|
300
301
|
|
|
301
302
|
```typescript
|
|
302
303
|
ejv({
|
|
303
|
-
str
|
|
304
|
+
str: 'abc'
|
|
304
305
|
}, [{
|
|
305
|
-
key
|
|
306
|
-
type
|
|
307
|
-
pattern
|
|
306
|
+
key: 'str',
|
|
307
|
+
type: 'string',
|
|
308
|
+
pattern: 'abc'
|
|
308
309
|
}, {
|
|
309
|
-
key
|
|
310
|
-
type
|
|
311
|
-
pattern
|
|
310
|
+
key: 'str',
|
|
311
|
+
type: 'string',
|
|
312
|
+
pattern: ['abc', 'ac']
|
|
312
313
|
}, {
|
|
313
|
-
key
|
|
314
|
-
type
|
|
315
|
-
pattern
|
|
314
|
+
key: 'str',
|
|
315
|
+
type: 'string',
|
|
316
|
+
pattern: /abc/
|
|
316
317
|
}, {
|
|
317
|
-
key
|
|
318
|
-
type
|
|
319
|
-
pattern
|
|
318
|
+
key: 'str',
|
|
319
|
+
type: 'string',
|
|
320
|
+
pattern: [/abc/, /ac/]
|
|
320
321
|
}]);
|
|
321
322
|
```
|
|
322
323
|
|
|
@@ -330,11 +331,11 @@ ejv({
|
|
|
330
331
|
|
|
331
332
|
```typescript
|
|
332
333
|
ejv({
|
|
333
|
-
obj
|
|
334
|
+
obj: {}
|
|
334
335
|
}, [{
|
|
335
|
-
key
|
|
336
|
-
type
|
|
337
|
-
allowNoProperty
|
|
336
|
+
key: 'obj',
|
|
337
|
+
type: 'object',
|
|
338
|
+
allowNoProperty: false // 실패
|
|
338
339
|
}]);
|
|
339
340
|
```
|
|
340
341
|
|
|
@@ -345,19 +346,19 @@ ejv({
|
|
|
345
346
|
|
|
346
347
|
```typescript
|
|
347
348
|
ejv({
|
|
348
|
-
data
|
|
349
|
-
num
|
|
350
|
-
str
|
|
349
|
+
data: {
|
|
350
|
+
num: 10,
|
|
351
|
+
str: 'ejv'
|
|
351
352
|
}
|
|
352
353
|
}, [{
|
|
353
|
-
key
|
|
354
|
-
type
|
|
355
|
-
properties
|
|
356
|
-
key
|
|
357
|
-
type
|
|
354
|
+
key: 'data',
|
|
355
|
+
type: 'object',
|
|
356
|
+
properties: [{
|
|
357
|
+
key: 'num',
|
|
358
|
+
type: 'number'
|
|
358
359
|
}, {
|
|
359
|
-
key
|
|
360
|
-
type
|
|
360
|
+
key: 'str',
|
|
361
|
+
type: 'string'
|
|
361
362
|
}]
|
|
362
363
|
}]);
|
|
363
364
|
```
|
|
@@ -378,25 +379,25 @@ ejv({
|
|
|
378
379
|
|
|
379
380
|
```typescript
|
|
380
381
|
ejv({
|
|
381
|
-
date1
|
|
382
|
+
date1: new Date(2019, 11, 30)
|
|
382
383
|
}, [{
|
|
383
|
-
key
|
|
384
|
-
type
|
|
385
|
-
min
|
|
384
|
+
key: 'date1',
|
|
385
|
+
type: 'date',
|
|
386
|
+
min: new Date(2019, 11, 30) // 성공
|
|
386
387
|
}, {
|
|
387
|
-
key
|
|
388
|
-
type
|
|
389
|
-
min
|
|
390
|
-
exclusiveMin
|
|
388
|
+
key: 'date1',
|
|
389
|
+
type: 'date',
|
|
390
|
+
min: new Date(2019, 11, 30),
|
|
391
|
+
exclusiveMin: true // 실패
|
|
391
392
|
}, {
|
|
392
|
-
key
|
|
393
|
-
type
|
|
394
|
-
min
|
|
393
|
+
key: 'date1',
|
|
394
|
+
type: 'date',
|
|
395
|
+
min: '2019-12-30T00:00:00Z' // 성공
|
|
395
396
|
}, {
|
|
396
|
-
key
|
|
397
|
-
type
|
|
398
|
-
min
|
|
399
|
-
exclusiveMin
|
|
397
|
+
key: 'date1',
|
|
398
|
+
type: 'date',
|
|
399
|
+
min: '2019-12-30T00:00:00Z',
|
|
400
|
+
exclusiveMin: true // 실패
|
|
400
401
|
}]);
|
|
401
402
|
```
|
|
402
403
|
|
|
@@ -414,25 +415,25 @@ ejv({
|
|
|
414
415
|
|
|
415
416
|
```typescript
|
|
416
417
|
ejv({
|
|
417
|
-
date1
|
|
418
|
+
date1: new Date(2019, 11, 30)
|
|
418
419
|
}, [{
|
|
419
|
-
key
|
|
420
|
-
type
|
|
421
|
-
max
|
|
420
|
+
key: 'date1',
|
|
421
|
+
type: 'date',
|
|
422
|
+
max: new Date(2019, 11, 30) // 성공
|
|
422
423
|
}, {
|
|
423
|
-
key
|
|
424
|
-
type
|
|
425
|
-
max
|
|
426
|
-
exclusiveMax
|
|
424
|
+
key: 'date1',
|
|
425
|
+
type: 'date',
|
|
426
|
+
max: new Date(2019, 11, 30),
|
|
427
|
+
exclusiveMax: true // 실패
|
|
427
428
|
}, {
|
|
428
|
-
key
|
|
429
|
-
type
|
|
430
|
-
max
|
|
429
|
+
key: 'date1',
|
|
430
|
+
type: 'date',
|
|
431
|
+
max: '2019-12-30T00:00:00Z' // 성공
|
|
431
432
|
}, {
|
|
432
|
-
key
|
|
433
|
-
type
|
|
434
|
-
max
|
|
435
|
-
exclusiveMax
|
|
433
|
+
key: 'date1',
|
|
434
|
+
type: 'date',
|
|
435
|
+
max: '2019-12-30T00:00:00Z',
|
|
436
|
+
exclusiveMax: true // 실패
|
|
436
437
|
}]);
|
|
437
438
|
```
|
|
438
439
|
|
|
@@ -444,11 +445,11 @@ ejv({
|
|
|
444
445
|
|
|
445
446
|
```typescript
|
|
446
447
|
ejv({
|
|
447
|
-
arr
|
|
448
|
+
arr: [1, 2]
|
|
448
449
|
}, [{
|
|
449
|
-
key
|
|
450
|
-
type
|
|
451
|
-
length
|
|
450
|
+
key: 'arr',
|
|
451
|
+
type: 'array',
|
|
452
|
+
length: 2
|
|
452
453
|
}]);
|
|
453
454
|
````
|
|
454
455
|
|
|
@@ -458,11 +459,11 @@ ejv({
|
|
|
458
459
|
|
|
459
460
|
```typescript
|
|
460
461
|
ejv({
|
|
461
|
-
arr
|
|
462
|
+
arr: [1, 2]
|
|
462
463
|
}, [{
|
|
463
|
-
key
|
|
464
|
-
type
|
|
465
|
-
minLength
|
|
464
|
+
key: 'arr',
|
|
465
|
+
type: 'array',
|
|
466
|
+
minLength: 2
|
|
466
467
|
}]);
|
|
467
468
|
````
|
|
468
469
|
|
|
@@ -472,11 +473,11 @@ ejv({
|
|
|
472
473
|
|
|
473
474
|
```typescript
|
|
474
475
|
ejv({
|
|
475
|
-
arr
|
|
476
|
+
arr: [1, 2, 3]
|
|
476
477
|
}, [{
|
|
477
|
-
key
|
|
478
|
-
type
|
|
479
|
-
maxLength
|
|
478
|
+
key: 'arr',
|
|
479
|
+
type: 'array',
|
|
480
|
+
maxLength: 3
|
|
480
481
|
}]);
|
|
481
482
|
````
|
|
482
483
|
|
|
@@ -494,14 +495,14 @@ ejv({
|
|
|
494
495
|
|
|
495
496
|
```typescript
|
|
496
497
|
ejv({
|
|
497
|
-
arr
|
|
498
|
+
arr: [1, 2, 3]
|
|
498
499
|
}, [{
|
|
499
|
-
key
|
|
500
|
-
type
|
|
501
|
-
items
|
|
502
|
-
type
|
|
503
|
-
min
|
|
504
|
-
max
|
|
500
|
+
key: 'arr',
|
|
501
|
+
type: 'array',
|
|
502
|
+
items: [{
|
|
503
|
+
type: 'number',
|
|
504
|
+
min: 1,
|
|
505
|
+
max: 3
|
|
505
506
|
}]
|
|
506
507
|
}])
|
|
507
508
|
```
|
|
@@ -511,15 +512,15 @@ ejv({
|
|
|
511
512
|
검사할 프로퍼티의 타입을 지정합니다.
|
|
512
513
|
사용할 수 있는 값은 다음과 같습니다.
|
|
513
514
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
`'boolean'
|
|
517
|
-
`'number'
|
|
518
|
-
`'string'
|
|
519
|
-
`'object'
|
|
520
|
-
`'date'
|
|
521
|
-
`'regexp'
|
|
522
|
-
`'array'
|
|
515
|
+
타입 | 예
|
|
516
|
+
-------------|-------------------------------
|
|
517
|
+
`'boolean'` | `true`, `false`
|
|
518
|
+
`'number'` | `0`, `1`, `1.5`, ...
|
|
519
|
+
`'string'` | `'ejv'`, `'hello'`, ...
|
|
520
|
+
`'object'` | `{}`, `{ key : 123 }`, ...
|
|
521
|
+
`'date'` | `new Date`
|
|
522
|
+
`'regexp'` | `new RegExp(/./)`, `/./`, ...
|
|
523
|
+
`'array'` | `[]`, `[1, 2, 3]`, ...
|
|
523
524
|
|
|
524
525
|
## `EjvError`
|
|
525
526
|
|
|
@@ -554,11 +555,11 @@ ejv({
|
|
|
554
555
|
```typescript
|
|
555
556
|
import { ejv, EjvError } from 'ejv';
|
|
556
557
|
|
|
557
|
-
const error
|
|
558
|
-
a
|
|
558
|
+
const error: null | EjvError = ejv({
|
|
559
|
+
a: 10
|
|
559
560
|
}, [{
|
|
560
|
-
key
|
|
561
|
-
type
|
|
561
|
+
key: 'a',
|
|
562
|
+
type: 'string'
|
|
562
563
|
}]);
|
|
563
564
|
|
|
564
565
|
console.log(error.type); // 'TYPE_MISMATCH'
|
|
@@ -581,14 +582,14 @@ ejv가 제공하는 에러 메시지를 다른 내용으로 변경하려면 `Ejv
|
|
|
581
582
|
```typescript
|
|
582
583
|
import { ejv, EjvError, ErrorType } from 'ejv';
|
|
583
584
|
|
|
584
|
-
const error
|
|
585
|
-
a
|
|
585
|
+
const error: null | EjvError = ejv({
|
|
586
|
+
a: 10
|
|
586
587
|
}, [{
|
|
587
|
-
key
|
|
588
|
-
type
|
|
588
|
+
key: 'a',
|
|
589
|
+
type: 'string'
|
|
589
590
|
}, {
|
|
590
|
-
customErrorMsg
|
|
591
|
-
[ErrorType.TYPE_MISMATCH]
|
|
591
|
+
customErrorMsg: {
|
|
592
|
+
[ErrorType.TYPE_MISMATCH]: 'property "a" should be a "string".'
|
|
592
593
|
}
|
|
593
594
|
}]);
|
|
594
595
|
|