@cleverbrush/schema 1.0.0-beta.4 → 1.0.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/README.md +118 -320
- package/dist/builders/AnySchemaBuilder.d.ts +76 -0
- package/dist/builders/AnySchemaBuilder.js +112 -0
- package/dist/builders/ArraySchemaBuilder.d.ts +112 -14
- package/dist/builders/ArraySchemaBuilder.js +254 -111
- package/dist/builders/BooleanSchemaBuilder.d.ts +69 -29
- package/dist/builders/BooleanSchemaBuilder.js +134 -74
- package/dist/builders/DateSchemaBuilder.d.ts +177 -0
- package/dist/builders/DateSchemaBuilder.js +433 -0
- package/dist/builders/FunctionSchemaBuilder.d.ts +59 -23
- package/dist/builders/FunctionSchemaBuilder.js +103 -56
- package/dist/builders/NumberSchemaBuilder.d.ts +159 -59
- package/dist/builders/NumberSchemaBuilder.js +345 -165
- package/dist/builders/ObjectSchemaBuilder.d.ts +357 -81
- package/dist/builders/ObjectSchemaBuilder.js +519 -283
- package/dist/builders/SchemaBuilder.d.ts +158 -34
- package/dist/builders/SchemaBuilder.js +258 -71
- package/dist/builders/StringSchemaBuilder.d.ts +138 -13
- package/dist/builders/StringSchemaBuilder.js +261 -115
- package/dist/builders/UnionSchemaBuilder.d.ts +129 -9
- package/dist/builders/UnionSchemaBuilder.js +196 -75
- package/dist/index.d.ts +20 -40
- package/dist/index.js +19 -32
- package/dist/utils/transaction.d.ts +46 -0
- package/dist/utils/transaction.js +178 -0
- package/package.json +27 -14
- package/dist/defaultSchemas.d.ts +0 -4
- package/dist/defaultSchemas.js +0 -45
- package/dist/schema.d.ts +0 -230
- package/dist/schema.js +0 -2
- package/dist/schemaRegistry.d.ts +0 -49
- package/dist/schemaRegistry.js +0 -278
- package/dist/validators/validateArray.d.ts +0 -3
- package/dist/validators/validateArray.js +0 -60
- package/dist/validators/validateBoolean.d.ts +0 -2
- package/dist/validators/validateBoolean.js +0 -30
- package/dist/validators/validateFunction.d.ts +0 -2
- package/dist/validators/validateFunction.js +0 -21
- package/dist/validators/validateNumber.d.ts +0 -2
- package/dist/validators/validateNumber.js +0 -69
- package/dist/validators/validateObject.d.ts +0 -3
- package/dist/validators/validateObject.js +0 -95
- package/dist/validators/validateString.d.ts +0 -2
- package/dist/validators/validateString.js +0 -50
- package/dist/validators/validateUnion.d.ts +0 -3
- package/dist/validators/validateUnion.js +0 -30
- package/src/builders/ArraySchemaBuilder.test.ts +0 -270
- package/src/builders/ArraySchemaBuilder.ts +0 -381
- package/src/builders/BooleanSchemaBuilder.test.ts +0 -196
- package/src/builders/BooleanSchemaBuilder.ts +0 -155
- package/src/builders/FunctionSchemaBuilder.test.ts +0 -134
- package/src/builders/FunctionSchemaBuilder.ts +0 -109
- package/src/builders/NumberSchemaBuilder.test.ts +0 -493
- package/src/builders/NumberSchemaBuilder.ts +0 -789
- package/src/builders/ObjectSchemaBuilder.test.ts +0 -657
- package/src/builders/ObjectSchemaBuilder.ts +0 -794
- package/src/builders/SchemaBuilder.test.ts +0 -73
- package/src/builders/SchemaBuilder.ts +0 -135
- package/src/builders/StringSchemaBuilder.test.ts +0 -318
- package/src/builders/StringSchemaBuilder.ts +0 -392
- package/src/builders/UnionSchemaBuilder.test.ts +0 -162
- package/src/builders/UnionSchemaBuilder.ts +0 -154
- package/src/defaultSchemas.ts +0 -44
- package/src/index.ts +0 -66
- package/src/schema.ts +0 -827
- package/src/schemaRegistry.builders.test.ts +0 -1393
- package/src/schemaRegistry.test.ts +0 -118
- package/src/schemaRegistry.ts +0 -461
- package/src/validators/validateArray.ts +0 -76
- package/src/validators/validateBoolean.ts +0 -36
- package/src/validators/validateFunction.ts +0 -25
- package/src/validators/validateNumber.ts +0 -82
- package/src/validators/validateObject.ts +0 -119
- package/src/validators/validateString.ts +0 -59
- package/src/validators/validateUnion.ts +0 -36
- package/tsconfig.json +0 -16
|
@@ -1,61 +1,161 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
1
|
+
import { Preprocessor, SchemaBuilder, ValidationResult, ValidationContext, Validator } from './SchemaBuilder.js';
|
|
2
|
+
type NumberSchemaBuilderCreateProps<T = number, R extends boolean = true> = Partial<ReturnType<NumberSchemaBuilder<T, R>['introspect']>>;
|
|
3
|
+
/**
|
|
4
|
+
* Number schema builder class. Allows to create Number schemas.
|
|
5
|
+
* Can be required or optional, can be restricted to be equal to a certain value,
|
|
6
|
+
* can be restricted to be in a certain range, can be restricted to be integer.
|
|
7
|
+
*
|
|
8
|
+
* **NOTE** this class is exported only to give opportunity to extend it
|
|
9
|
+
* by inheriting. It is not recommended to create an instance of this class
|
|
10
|
+
* directly. Use {@link number | number()} function instead.
|
|
11
|
+
*
|
|
12
|
+
* @example ```ts
|
|
13
|
+
* const schema = number().equals(42);
|
|
14
|
+
* const result = await schema.validate(42);
|
|
15
|
+
* // result.valid === true
|
|
16
|
+
* // result.object === 42
|
|
17
|
+
* ```
|
|
18
|
+
* @example ```ts
|
|
19
|
+
* const schema = number();
|
|
20
|
+
* const result = await schema.validate('42');
|
|
21
|
+
* // result.valid === false
|
|
22
|
+
* // result.errors[0].message === 'is expected to be a number'
|
|
23
|
+
* ```
|
|
24
|
+
* @example ```ts
|
|
25
|
+
* const schema = number().min(0).max(100);
|
|
26
|
+
* const result = await schema.validate(42);
|
|
27
|
+
* // result.valid === true
|
|
28
|
+
* // result.object === 42
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @example ```ts
|
|
32
|
+
* const schema = number().min(0).max(100);
|
|
33
|
+
* const result = await schema.validate(142.5);
|
|
34
|
+
* // result.valid === false
|
|
35
|
+
* // result.errors[0].message === 'is expected to be less than or equal to 100'
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @see {@link number}
|
|
39
|
+
*/
|
|
40
|
+
export declare class NumberSchemaBuilder<TResult = number, TRequired extends boolean = true> extends SchemaBuilder<TResult, TRequired> {
|
|
41
|
+
#private;
|
|
42
|
+
static create(props: NumberSchemaBuilderCreateProps): NumberSchemaBuilder<number, true>;
|
|
36
43
|
private constructor();
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
44
|
+
introspect(): {
|
|
45
|
+
/**
|
|
46
|
+
* Min valid value (if defined).
|
|
47
|
+
*/
|
|
48
|
+
min: number | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Max valid value (if defined).
|
|
51
|
+
*/
|
|
52
|
+
max: number | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Make sure that object is not `NaN`. `true` by default.
|
|
55
|
+
*/
|
|
56
|
+
ensureNotNaN: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Make sure that object is not different kinds of `infinity`. `true` by default.
|
|
59
|
+
*/
|
|
60
|
+
ensureIsFinite: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* If set, restrict object to be equal to a certain value.
|
|
63
|
+
*/
|
|
64
|
+
equalsTo: number | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Allow only integer values (floating point values will be rejected
|
|
67
|
+
* as invalid)
|
|
68
|
+
*/
|
|
69
|
+
isInteger: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Array of preprocessor functions
|
|
72
|
+
*/
|
|
73
|
+
preprocessors: Preprocessor<TResult>[];
|
|
74
|
+
/**
|
|
75
|
+
* Array of validator functions
|
|
76
|
+
*/
|
|
77
|
+
validators: Validator<TResult>[];
|
|
78
|
+
type: string;
|
|
79
|
+
isRequired: boolean;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* @hidden
|
|
83
|
+
*/
|
|
84
|
+
hasType<T>(notUsed?: T): NumberSchemaBuilder<T, true>;
|
|
85
|
+
/**
|
|
86
|
+
* @hidden
|
|
87
|
+
*/
|
|
88
|
+
clearHasType(): NumberSchemaBuilder<number, TRequired>;
|
|
89
|
+
/**
|
|
90
|
+
* Performs validion of number schema over `object`.
|
|
91
|
+
* @param context Optional `ValidationContext` settings.
|
|
92
|
+
*/
|
|
93
|
+
validate(object: TResult, context?: ValidationContext): Promise<ValidationResult<TResult>>;
|
|
94
|
+
protected createFromProps<T, TReq extends boolean>(props: NumberSchemaBuilderCreateProps<T, TReq>): this;
|
|
95
|
+
/**
|
|
96
|
+
* Restricts number to be equal to `value`.
|
|
97
|
+
*/
|
|
98
|
+
equals<T extends number>(value: T): NumberSchemaBuilder<T, TRequired>;
|
|
99
|
+
/**
|
|
100
|
+
* Clear `equals()` call.
|
|
101
|
+
*/
|
|
102
|
+
clearEquals(): NumberSchemaBuilder<number, TRequired>;
|
|
103
|
+
/**
|
|
104
|
+
* Float values will be considered as valid after this call.
|
|
105
|
+
*/
|
|
106
|
+
isFloat(): NumberSchemaBuilder<TResult, TRequired>;
|
|
107
|
+
/**
|
|
108
|
+
* Only integer values will be considered as valid after this call.
|
|
109
|
+
*/
|
|
110
|
+
isInteger(): NumberSchemaBuilder<TResult, TRequired>;
|
|
111
|
+
/**
|
|
112
|
+
* @hidden
|
|
113
|
+
*/
|
|
114
|
+
required(): NumberSchemaBuilder<TResult, true>;
|
|
115
|
+
/**
|
|
116
|
+
* @hidden
|
|
117
|
+
*/
|
|
118
|
+
optional(): NumberSchemaBuilder<TResult, false>;
|
|
119
|
+
/**
|
|
120
|
+
* Do not accept NaN value
|
|
121
|
+
*/
|
|
122
|
+
notNaN(): NumberSchemaBuilder<TResult, TRequired>;
|
|
123
|
+
/**
|
|
124
|
+
* Consider NaN value as valid
|
|
125
|
+
*/
|
|
126
|
+
canBeNaN(): NumberSchemaBuilder<TResult, TRequired>;
|
|
127
|
+
/**
|
|
128
|
+
* Do not accept `Infinity`.
|
|
129
|
+
*/
|
|
130
|
+
isFinite(): NumberSchemaBuilder<TResult, TRequired>;
|
|
131
|
+
/**
|
|
132
|
+
* Consider `Infinity` as valid.
|
|
133
|
+
*/
|
|
134
|
+
canBeInfinite(): NumberSchemaBuilder<TResult, TRequired>;
|
|
135
|
+
/**
|
|
136
|
+
* Restrict number to be at least `minValue`.
|
|
137
|
+
*/
|
|
138
|
+
min(minValue: number): NumberSchemaBuilder<TResult, TRequired>;
|
|
139
|
+
/**
|
|
140
|
+
* Clear `min()` call.
|
|
141
|
+
*/
|
|
142
|
+
clearMin(): NumberSchemaBuilder<TResult, TRequired>;
|
|
143
|
+
/**
|
|
144
|
+
* Restrict number to be no more than `maxValue`.
|
|
145
|
+
*/
|
|
146
|
+
max(maxValue: number): NumberSchemaBuilder<TResult, TRequired>;
|
|
147
|
+
/**
|
|
148
|
+
* Clear `max()` call.
|
|
149
|
+
*/
|
|
150
|
+
clearMax(): NumberSchemaBuilder<TResult, TRequired>;
|
|
60
151
|
}
|
|
61
|
-
|
|
152
|
+
/**
|
|
153
|
+
* Creates a number schema restricted to `equals` value.
|
|
154
|
+
* @param equals string value
|
|
155
|
+
*/
|
|
156
|
+
export declare function number<T extends number>(equals: T): NumberSchemaBuilder<T, true>;
|
|
157
|
+
/**
|
|
158
|
+
* Creates a number schema.
|
|
159
|
+
*/
|
|
160
|
+
export declare function number(): NumberSchemaBuilder<number, true>;
|
|
161
|
+
export {};
|