ejv 2.1.1 → 2.1.3
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 +8 -8
- package/CHANGELOG.md +134 -135
- package/LICENSE +21 -21
- package/README-KR.md +604 -597
- package/README.md +608 -603
- package/build/cjs/constants.js +1 -0
- package/build/cjs/constants.js.map +1 -1
- package/build/cjs/ejv.js +3 -0
- package/build/cjs/ejv.js.map +1 -1
- package/build/cjs/package.json +1 -1
- package/build/cjs/tester.js +11 -1
- package/build/cjs/tester.js.map +1 -1
- package/build/constants.d.ts +1 -0
- package/build/esm/constants.js +1 -0
- package/build/esm/constants.js.map +1 -1
- package/build/esm/ejv.js +4 -1
- package/build/esm/ejv.js.map +1 -1
- package/build/esm/package.json +1 -1
- package/build/esm/tester.js +9 -0
- package/build/esm/tester.js.map +1 -1
- package/build/tester.d.ts +1 -0
- package/eslint.config.mjs +66 -59
- package/package.json +56 -54
- package/scripts/add-js-extensions.ts +59 -59
- package/spec/ArrayScheme.ts +1021 -1021
- package/spec/CommonScheme.ts +251 -251
- package/spec/DateScheme.ts +472 -472
- package/spec/NumberScheme.ts +1160 -1160
- package/spec/ObjectScheme.ts +499 -499
- package/spec/RegExpScheme.ts +112 -112
- package/spec/StringScheme.ts +1407 -1336
- package/spec/common-test-util.ts +63 -63
- package/spec/ejv.spec.ts +235 -235
- package/spec/testers.spec.ts +833 -833
- package/src/constants.ts +164 -162
- package/src/ejv.ts +1751 -1746
- package/src/index.ts +14 -14
- package/src/interfaces.ts +144 -144
- package/src/tester.ts +323 -312
- package/src/util.ts +124 -124
- package/tsconfig.cjs.json +8 -8
- package/tsconfig.esm.json +7 -7
- package/tsconfig.json +19 -19
- package/tsconfig.scripts.json +14 -14
- package/tsconfig.types.json +9 -9
package/src/index.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export { ejv } from './ejv';
|
|
2
|
-
export { DATA_TYPE, NUMBER_FORMAT, STRING_FORMAT, ERROR_MESSAGE, ERROR_TYPE } from './constants';
|
|
3
|
-
export {
|
|
4
|
-
BooleanScheme,
|
|
5
|
-
NumberScheme,
|
|
6
|
-
StringScheme,
|
|
7
|
-
ObjectScheme,
|
|
8
|
-
ArrayScheme,
|
|
9
|
-
RegExpScheme,
|
|
10
|
-
DateScheme,
|
|
11
|
-
EjvError,
|
|
12
|
-
Scheme,
|
|
13
|
-
Options
|
|
14
|
-
} from './interfaces';
|
|
1
|
+
export { ejv } from './ejv';
|
|
2
|
+
export { DATA_TYPE, NUMBER_FORMAT, STRING_FORMAT, ERROR_MESSAGE, ERROR_TYPE } from './constants';
|
|
3
|
+
export {
|
|
4
|
+
BooleanScheme,
|
|
5
|
+
NumberScheme,
|
|
6
|
+
StringScheme,
|
|
7
|
+
ObjectScheme,
|
|
8
|
+
ArrayScheme,
|
|
9
|
+
RegExpScheme,
|
|
10
|
+
DateScheme,
|
|
11
|
+
EjvError,
|
|
12
|
+
Scheme,
|
|
13
|
+
Options
|
|
14
|
+
} from './interfaces';
|
package/src/interfaces.ts
CHANGED
|
@@ -1,144 +1,144 @@
|
|
|
1
|
-
import { DATA_TYPE, ERROR_TYPE, NUMBER_FORMAT, STRING_FORMAT } from './constants';
|
|
2
|
-
|
|
3
|
-
export type AllDataType = string | string[] | DATA_TYPE | DATA_TYPE[];
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
interface CommonScheme {
|
|
7
|
-
parent?: Scheme;
|
|
8
|
-
|
|
9
|
-
key?: string; // can be omitted in array items
|
|
10
|
-
type?: AllDataType; // optional for not
|
|
11
|
-
|
|
12
|
-
optional?: boolean; // false
|
|
13
|
-
nullable?: boolean; // false
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// no additional rule
|
|
17
|
-
export type BooleanScheme = CommonScheme;
|
|
18
|
-
|
|
19
|
-
export interface MinMax<T> {
|
|
20
|
-
min?: T;
|
|
21
|
-
exclusiveMin?: boolean; // default false
|
|
22
|
-
|
|
23
|
-
max?: T;
|
|
24
|
-
exclusiveMax?: boolean; // default false
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface MinMaxScheme<T> extends CommonScheme, MinMax<T> {
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface NumberScheme extends MinMaxScheme<number> {
|
|
31
|
-
enum?: number[];
|
|
32
|
-
notEnum?: number[];
|
|
33
|
-
|
|
34
|
-
format?: string | string[] | NUMBER_FORMAT | NUMBER_FORMAT[];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export interface StringScheme extends CommonScheme {
|
|
38
|
-
enum?: string[];
|
|
39
|
-
notEnum?: string[];
|
|
40
|
-
|
|
41
|
-
format?: string | string[] | STRING_FORMAT | STRING_FORMAT[];
|
|
42
|
-
pattern?: string | string[] | RegExp | RegExp[];
|
|
43
|
-
|
|
44
|
-
length?: number;
|
|
45
|
-
minLength?: number;
|
|
46
|
-
maxLength?: number;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export interface ObjectScheme extends CommonScheme {
|
|
50
|
-
properties?: Scheme[];
|
|
51
|
-
allowNoProperty?: boolean; // true
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// min, max string for date string
|
|
55
|
-
export type DateScheme = MinMaxScheme<string | Date>
|
|
56
|
-
|
|
57
|
-
// no additional rule
|
|
58
|
-
export type RegExpScheme = CommonScheme;
|
|
59
|
-
|
|
60
|
-
export interface ArrayScheme extends CommonScheme {
|
|
61
|
-
unique?: boolean; // false
|
|
62
|
-
items?: AllDataType | Scheme | Scheme[];
|
|
63
|
-
|
|
64
|
-
length?: number;
|
|
65
|
-
minLength?: number;
|
|
66
|
-
maxLength?: number;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export type Scheme =
|
|
70
|
-
BooleanScheme
|
|
71
|
-
| NumberScheme
|
|
72
|
-
| StringScheme
|
|
73
|
-
| ObjectScheme
|
|
74
|
-
| DateScheme
|
|
75
|
-
| RegExpScheme
|
|
76
|
-
| ArrayScheme;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
export interface Options {
|
|
80
|
-
customErrorMsg?: {
|
|
81
|
-
[key in ERROR_TYPE]?: string;
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export interface InternalOptions extends Options {
|
|
86
|
-
path: string[];
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export class EjvError {
|
|
90
|
-
public type: ERROR_TYPE;
|
|
91
|
-
public message: string;
|
|
92
|
-
|
|
93
|
-
public data: unknown;
|
|
94
|
-
public path: string | undefined;
|
|
95
|
-
|
|
96
|
-
public errorScheme: Scheme | undefined;
|
|
97
|
-
public errorData: unknown | undefined;
|
|
98
|
-
|
|
99
|
-
public isSchemeError: boolean;
|
|
100
|
-
public isDataError: boolean;
|
|
101
|
-
|
|
102
|
-
constructor (param: {
|
|
103
|
-
type: ERROR_TYPE,
|
|
104
|
-
message: string,
|
|
105
|
-
|
|
106
|
-
data: unknown,
|
|
107
|
-
path?: string[],
|
|
108
|
-
|
|
109
|
-
errorScheme?: Scheme,
|
|
110
|
-
errorData?: unknown,
|
|
111
|
-
|
|
112
|
-
isSchemeError?: boolean
|
|
113
|
-
}) {
|
|
114
|
-
this.type = param.type;
|
|
115
|
-
this.message = param.message;
|
|
116
|
-
|
|
117
|
-
this.data = param.data;
|
|
118
|
-
|
|
119
|
-
if ('path' in param && param.path !== undefined) {
|
|
120
|
-
this.path = param.path.join('/');
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
if ('errorScheme' in param) {
|
|
124
|
-
this.errorScheme = param.errorScheme;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if ('errorData' in param) {
|
|
128
|
-
this.errorData = param.errorData;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
if (param.isSchemeError) {
|
|
132
|
-
this.isSchemeError = true;
|
|
133
|
-
this.isDataError = false;
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
this.isSchemeError = false;
|
|
137
|
-
this.isDataError = true;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export interface AnyObject {
|
|
143
|
-
[key: string]: unknown;
|
|
144
|
-
}
|
|
1
|
+
import { DATA_TYPE, ERROR_TYPE, NUMBER_FORMAT, STRING_FORMAT } from './constants';
|
|
2
|
+
|
|
3
|
+
export type AllDataType = string | string[] | DATA_TYPE | DATA_TYPE[];
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
interface CommonScheme {
|
|
7
|
+
parent?: Scheme;
|
|
8
|
+
|
|
9
|
+
key?: string; // can be omitted in array items
|
|
10
|
+
type?: AllDataType; // optional for not
|
|
11
|
+
|
|
12
|
+
optional?: boolean; // false
|
|
13
|
+
nullable?: boolean; // false
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// no additional rule
|
|
17
|
+
export type BooleanScheme = CommonScheme;
|
|
18
|
+
|
|
19
|
+
export interface MinMax<T> {
|
|
20
|
+
min?: T;
|
|
21
|
+
exclusiveMin?: boolean; // default false
|
|
22
|
+
|
|
23
|
+
max?: T;
|
|
24
|
+
exclusiveMax?: boolean; // default false
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface MinMaxScheme<T> extends CommonScheme, MinMax<T> {
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface NumberScheme extends MinMaxScheme<number> {
|
|
31
|
+
enum?: number[];
|
|
32
|
+
notEnum?: number[];
|
|
33
|
+
|
|
34
|
+
format?: string | string[] | NUMBER_FORMAT | NUMBER_FORMAT[];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface StringScheme extends CommonScheme {
|
|
38
|
+
enum?: string[];
|
|
39
|
+
notEnum?: string[];
|
|
40
|
+
|
|
41
|
+
format?: string | string[] | STRING_FORMAT | STRING_FORMAT[];
|
|
42
|
+
pattern?: string | string[] | RegExp | RegExp[];
|
|
43
|
+
|
|
44
|
+
length?: number;
|
|
45
|
+
minLength?: number;
|
|
46
|
+
maxLength?: number;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface ObjectScheme extends CommonScheme {
|
|
50
|
+
properties?: Scheme[];
|
|
51
|
+
allowNoProperty?: boolean; // true
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// min, max string for date string
|
|
55
|
+
export type DateScheme = MinMaxScheme<string | Date>
|
|
56
|
+
|
|
57
|
+
// no additional rule
|
|
58
|
+
export type RegExpScheme = CommonScheme;
|
|
59
|
+
|
|
60
|
+
export interface ArrayScheme extends CommonScheme {
|
|
61
|
+
unique?: boolean; // false
|
|
62
|
+
items?: AllDataType | Scheme | Scheme[];
|
|
63
|
+
|
|
64
|
+
length?: number;
|
|
65
|
+
minLength?: number;
|
|
66
|
+
maxLength?: number;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export type Scheme =
|
|
70
|
+
BooleanScheme
|
|
71
|
+
| NumberScheme
|
|
72
|
+
| StringScheme
|
|
73
|
+
| ObjectScheme
|
|
74
|
+
| DateScheme
|
|
75
|
+
| RegExpScheme
|
|
76
|
+
| ArrayScheme;
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
export interface Options {
|
|
80
|
+
customErrorMsg?: {
|
|
81
|
+
[key in ERROR_TYPE]?: string;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface InternalOptions extends Options {
|
|
86
|
+
path: string[];
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export class EjvError {
|
|
90
|
+
public type: ERROR_TYPE;
|
|
91
|
+
public message: string;
|
|
92
|
+
|
|
93
|
+
public data: unknown;
|
|
94
|
+
public path: string | undefined;
|
|
95
|
+
|
|
96
|
+
public errorScheme: Scheme | undefined;
|
|
97
|
+
public errorData: unknown | undefined;
|
|
98
|
+
|
|
99
|
+
public isSchemeError: boolean;
|
|
100
|
+
public isDataError: boolean;
|
|
101
|
+
|
|
102
|
+
constructor (param: {
|
|
103
|
+
type: ERROR_TYPE,
|
|
104
|
+
message: string,
|
|
105
|
+
|
|
106
|
+
data: unknown,
|
|
107
|
+
path?: string[],
|
|
108
|
+
|
|
109
|
+
errorScheme?: Scheme,
|
|
110
|
+
errorData?: unknown,
|
|
111
|
+
|
|
112
|
+
isSchemeError?: boolean
|
|
113
|
+
}) {
|
|
114
|
+
this.type = param.type;
|
|
115
|
+
this.message = param.message;
|
|
116
|
+
|
|
117
|
+
this.data = param.data;
|
|
118
|
+
|
|
119
|
+
if ('path' in param && param.path !== undefined) {
|
|
120
|
+
this.path = param.path.join('/');
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if ('errorScheme' in param) {
|
|
124
|
+
this.errorScheme = param.errorScheme;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if ('errorData' in param) {
|
|
128
|
+
this.errorData = param.errorData;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (param.isSchemeError) {
|
|
132
|
+
this.isSchemeError = true;
|
|
133
|
+
this.isDataError = false;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
this.isSchemeError = false;
|
|
137
|
+
this.isDataError = true;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export interface AnyObject {
|
|
143
|
+
[key: string]: unknown;
|
|
144
|
+
}
|