@cleverbrush/schema 1.0.0-beta.0 → 1.0.0-beta.1

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.
Files changed (49) hide show
  1. package/package.json +2 -2
  2. package/src/builders/UnionSchemaBuilder.ts +1 -6
  3. package/src/index.ts +1 -13
  4. package/src/schema.ts +9 -104
  5. package/src/schemaRegistry.builders.test.ts +35 -80
  6. package/src/schemaRegistry.test.ts +2 -1916
  7. package/src/schemaRegistry.ts +55 -126
  8. package/dist/builders/AliasSchemaBuilder.d.ts +0 -14
  9. package/dist/builders/AliasSchemaBuilder.js +0 -91
  10. package/dist/builders/ArraySchemaBuilder.d.ts +0 -15
  11. package/dist/builders/ArraySchemaBuilder.js +0 -141
  12. package/dist/builders/BooleanSchemaBuilder.d.ts +0 -31
  13. package/dist/builders/BooleanSchemaBuilder.js +0 -90
  14. package/dist/builders/FunctionSchemaBuilder.d.ts +0 -25
  15. package/dist/builders/FunctionSchemaBuilder.js +0 -66
  16. package/dist/builders/NumberSchemaBuilder.d.ts +0 -61
  17. package/dist/builders/NumberSchemaBuilder.js +0 -206
  18. package/dist/builders/ObjectSchemaBuilder.d.ts +0 -83
  19. package/dist/builders/ObjectSchemaBuilder.js +0 -344
  20. package/dist/builders/SchemaBuilder.d.ts +0 -36
  21. package/dist/builders/SchemaBuilder.js +0 -88
  22. package/dist/builders/StringSchemaBuilder.d.ts +0 -14
  23. package/dist/builders/StringSchemaBuilder.js +0 -140
  24. package/dist/builders/UnionSchemaBuilder.d.ts +0 -10
  25. package/dist/builders/UnionSchemaBuilder.js +0 -100
  26. package/dist/defaultSchemas.d.ts +0 -4
  27. package/dist/defaultSchemas.js +0 -45
  28. package/dist/index.d.ts +0 -42
  29. package/dist/index.js +0 -35
  30. package/dist/schema.d.ts +0 -242
  31. package/dist/schema.js +0 -2
  32. package/dist/schemaRegistry.d.ts +0 -54
  33. package/dist/schemaRegistry.js +0 -301
  34. package/dist/validators/validateArray.d.ts +0 -3
  35. package/dist/validators/validateArray.js +0 -60
  36. package/dist/validators/validateBoolean.d.ts +0 -2
  37. package/dist/validators/validateBoolean.js +0 -30
  38. package/dist/validators/validateFunction.d.ts +0 -2
  39. package/dist/validators/validateFunction.js +0 -21
  40. package/dist/validators/validateNumber.d.ts +0 -2
  41. package/dist/validators/validateNumber.js +0 -69
  42. package/dist/validators/validateObject.d.ts +0 -3
  43. package/dist/validators/validateObject.js +0 -95
  44. package/dist/validators/validateString.d.ts +0 -2
  45. package/dist/validators/validateString.js +0 -50
  46. package/dist/validators/validateUnion.d.ts +0 -3
  47. package/dist/validators/validateUnion.js +0 -30
  48. package/src/builders/AliasSchemaBuilder.test.ts +0 -124
  49. package/src/builders/AliasSchemaBuilder.ts +0 -250
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.func = exports.FunctionSchemaBuilder = void 0;
4
- const SchemaBuilder_js_1 = require("./SchemaBuilder.js");
5
- const defaultSchemas_js_1 = require("../defaultSchemas.js");
6
- class FunctionSchemaBuilder extends SchemaBuilder_js_1.SchemaBuilder {
7
- type = 'function';
8
- get _schema() {
9
- return Object.assign({
10
- type: this.type
11
- }, this.getCommonSchema());
12
- }
13
- clone() {
14
- return FunctionSchemaBuilder.create(this._schema);
15
- }
16
- static create(obj) {
17
- return new FunctionSchemaBuilder(obj);
18
- }
19
- constructor(obj) {
20
- super(obj);
21
- if (typeof obj !== 'object' || !obj) {
22
- const defaultSchema = defaultSchemas_js_1.defaultSchemas['function'];
23
- this.isRequired = defaultSchema.isRequired;
24
- this.isNullable = defaultSchema.isNullable;
25
- }
26
- }
27
- optional() {
28
- if (this.isRequired === false) {
29
- return this;
30
- }
31
- return FunctionSchemaBuilder.create({
32
- ...this._schema,
33
- isRequired: false
34
- });
35
- }
36
- required() {
37
- if (this.isRequired === true) {
38
- return this;
39
- }
40
- return FunctionSchemaBuilder.create({
41
- ...this._schema,
42
- isRequired: true
43
- });
44
- }
45
- nullable() {
46
- if (this.isNullable === true) {
47
- return this;
48
- }
49
- return FunctionSchemaBuilder.create({
50
- ...this._schema,
51
- isNullable: true
52
- });
53
- }
54
- notNullable() {
55
- if (this.isNullable === false) {
56
- return this;
57
- }
58
- return FunctionSchemaBuilder.create({
59
- ...this._schema,
60
- isNullable: false
61
- });
62
- }
63
- }
64
- exports.FunctionSchemaBuilder = FunctionSchemaBuilder;
65
- const func = () => FunctionSchemaBuilder.create();
66
- exports.func = func;
@@ -1,61 +0,0 @@
1
- import { ISchemaBuilder, SchemaBuilder } from './SchemaBuilder.js';
2
- import { Schema, Validator } from '../schema.js';
3
- export interface INumberSchemaBuilder<TRequired extends boolean = true, TNullable extends boolean = false, TMin extends number | undefined = undefined, TMax extends number | undefined = undefined, TIsInteger extends boolean | undefined = undefined, TEnsureNotNaN extends boolean = true, TEnsureIsFinite extends boolean = true, TEqualsTo extends number | undefined = undefined> extends ISchemaBuilder<TRequired, TNullable> {
4
- min<K extends number>(val: K): INumberSchemaBuilder<TRequired, TNullable, K, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
5
- clearMin(): INumberSchemaBuilder<TRequired, TNullable, undefined, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
6
- max<K extends number>(val: K): INumberSchemaBuilder<TRequired, TNullable, TMin, K, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
7
- clearMax(): INumberSchemaBuilder<TRequired, TNullable, TMin, undefined, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
8
- optional(): INumberSchemaBuilder<false, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
9
- required(): INumberSchemaBuilder<true, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
10
- nullable(): INumberSchemaBuilder<TRequired, true, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
11
- notNullable(): INumberSchemaBuilder<TRequired, false, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
12
- equals<T extends number>(val: T): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, T>;
13
- clearEquals(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, undefined>;
14
- isInteger(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, true, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
15
- canBeNotInteger(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, undefined, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
16
- notNaN(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, true, TEnsureIsFinite, TEqualsTo>;
17
- canBeNaN(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, false, TEnsureIsFinite, TEqualsTo>;
18
- isFinite(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, true, TEqualsTo>;
19
- canBeInfinite(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, false, TEqualsTo>;
20
- }
21
- export declare class NumberSchemaBuilder<TRequired extends boolean = true, TNullable extends boolean = false, TMin extends number | undefined = undefined, TMax extends number | undefined = undefined, TIsInteger extends boolean | undefined = undefined, TEnsureNotNaN extends boolean = true, TEnsureIsFinite extends boolean = true, TEqualsTo extends number | undefined = undefined> extends SchemaBuilder<TRequired, TNullable> implements INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo> {
22
- clone(): this;
23
- get _schema(): Schema;
24
- static create<TRequired extends boolean = true, TNullable extends boolean = false, TMin extends number | undefined = undefined, TMax extends number | undefined = undefined, TIsInteger extends boolean | undefined = undefined, TEnsureNotNaN extends boolean = true, TEnsureIsFinite extends boolean = true, TEqualsTo extends number | undefined = undefined>(obj?: {
25
- isRequired: TRequired;
26
- isNullable: TNullable;
27
- min: TMin;
28
- max: TMax;
29
- isInteger: TIsInteger;
30
- ensureNotNaN: TEnsureNotNaN;
31
- ensureIsFinite: TEnsureIsFinite;
32
- equals: TEqualsTo;
33
- validators?: Validator[];
34
- preprocessor?: ((value: unknown) => unknown | Promise<unknown>) | string;
35
- }): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
36
- private constructor();
37
- protected readonly type = "number";
38
- _min?: TMin;
39
- _max?: TMax;
40
- _isInteger?: TIsInteger;
41
- _ensureNotNaN: TEnsureNotNaN;
42
- _ensureIsFinite: TEnsureIsFinite;
43
- _equals?: TEqualsTo;
44
- min<K extends number>(val: K): INumberSchemaBuilder<TRequired, TNullable, K, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
45
- clearMin(): INumberSchemaBuilder<TRequired, TNullable, undefined, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
46
- max<K extends number>(val: K): INumberSchemaBuilder<TRequired, TNullable, TMin, K, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
47
- clearMax(): INumberSchemaBuilder<TRequired, TNullable, TMin, undefined, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
48
- optional(): INumberSchemaBuilder<false, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
49
- required(): INumberSchemaBuilder<true, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
50
- nullable(): INumberSchemaBuilder<TRequired, true, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
51
- notNullable(): INumberSchemaBuilder<TRequired, false, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
52
- equals<T extends number>(val: T): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, T>;
53
- clearEquals(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, TEnsureIsFinite, undefined>;
54
- isInteger(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, true, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
55
- canBeNotInteger(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, undefined, TEnsureNotNaN, TEnsureIsFinite, TEqualsTo>;
56
- notNaN(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, true, TEnsureIsFinite, TEqualsTo>;
57
- canBeNaN(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, false, TEnsureIsFinite, TEqualsTo>;
58
- isFinite(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, true, TEqualsTo>;
59
- canBeInfinite(): INumberSchemaBuilder<TRequired, TNullable, TMin, TMax, TIsInteger, TEnsureNotNaN, false, TEqualsTo>;
60
- }
61
- export declare const number: () => INumberSchemaBuilder<true, false, undefined, undefined, undefined, true, true, undefined>;
@@ -1,206 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.number = exports.NumberSchemaBuilder = void 0;
4
- const SchemaBuilder_js_1 = require("./SchemaBuilder.js");
5
- const defaultSchemas_js_1 = require("../defaultSchemas.js");
6
- class NumberSchemaBuilder extends SchemaBuilder_js_1.SchemaBuilder {
7
- clone() {
8
- return NumberSchemaBuilder.create(this._schema);
9
- }
10
- get _schema() {
11
- return Object.assign({
12
- type: this.type,
13
- ensureNotNaN: this._ensureNotNaN,
14
- ensureIsFinite: this._ensureIsFinite
15
- }, this.getCommonSchema(), typeof this._min !== 'undefined' ? { min: this._min } : {}, typeof this._max !== 'undefined' ? { max: this._max } : {}, typeof this._isInteger !== 'undefined'
16
- ? { isInteger: this._isInteger }
17
- : {}, typeof this._equals !== 'undefined' ? { equals: this._equals } : {});
18
- }
19
- static create(obj) {
20
- return new NumberSchemaBuilder(obj);
21
- }
22
- constructor(obj) {
23
- super(obj);
24
- if (typeof obj === 'object' && obj) {
25
- if (typeof obj.min !== 'undefined') {
26
- this._min = obj.min;
27
- }
28
- if (typeof obj.max !== 'undefined') {
29
- this._max = obj.max;
30
- }
31
- if (typeof obj.isInteger !== 'undefined') {
32
- this._isInteger = obj.isInteger;
33
- }
34
- if (typeof obj.ensureNotNaN !== 'undefined') {
35
- this._ensureNotNaN = obj.ensureNotNaN;
36
- }
37
- if (typeof obj.ensureIsFinite !== 'undefined') {
38
- this._ensureIsFinite = obj.ensureIsFinite;
39
- }
40
- if (typeof obj.equals !== 'undefined') {
41
- this._equals = obj.equals;
42
- }
43
- }
44
- else {
45
- const defaultSchema = defaultSchemas_js_1.defaultSchemas['number'];
46
- this.isRequired = defaultSchema.isRequired;
47
- this.isNullable = defaultSchema.isNullable;
48
- this._ensureNotNaN = defaultSchema.ensureNotNaN;
49
- this._ensureIsFinite = defaultSchema.ensureIsFinite;
50
- }
51
- }
52
- type = 'number';
53
- _min;
54
- _max;
55
- _isInteger;
56
- _ensureNotNaN = true;
57
- _ensureIsFinite = true;
58
- _equals;
59
- min(val) {
60
- if (this._min === val) {
61
- return this;
62
- }
63
- return NumberSchemaBuilder.create({
64
- ...this._schema,
65
- min: val
66
- });
67
- }
68
- clearMin() {
69
- if (typeof this._min === 'undefined') {
70
- return this;
71
- }
72
- return NumberSchemaBuilder.create({
73
- ...this._schema,
74
- min: undefined
75
- });
76
- }
77
- max(val) {
78
- if (this._max === val) {
79
- return this;
80
- }
81
- return NumberSchemaBuilder.create({
82
- ...this._schema,
83
- max: val
84
- });
85
- }
86
- clearMax() {
87
- if (typeof this._max === 'undefined') {
88
- return this;
89
- }
90
- return NumberSchemaBuilder.create({
91
- ...this._schema,
92
- max: undefined
93
- });
94
- }
95
- optional() {
96
- if (this.isRequired === false) {
97
- return this;
98
- }
99
- return NumberSchemaBuilder.create({
100
- ...this._schema,
101
- isRequired: false
102
- });
103
- }
104
- required() {
105
- if (this.isRequired === true) {
106
- return this;
107
- }
108
- return NumberSchemaBuilder.create({
109
- ...this._schema,
110
- isRequired: true
111
- });
112
- }
113
- nullable() {
114
- if (this.isNullable === true) {
115
- return this;
116
- }
117
- return NumberSchemaBuilder.create({
118
- ...this._schema,
119
- isNullable: true
120
- });
121
- }
122
- notNullable() {
123
- if (this.isNullable === false) {
124
- return this;
125
- }
126
- return NumberSchemaBuilder.create({
127
- ...this._schema,
128
- isNullable: false
129
- });
130
- }
131
- equals(val) {
132
- if (this._equals === val) {
133
- return this;
134
- }
135
- return NumberSchemaBuilder.create({
136
- ...this._schema,
137
- equals: val
138
- });
139
- }
140
- clearEquals() {
141
- if (typeof this._equals === 'undefined') {
142
- return this;
143
- }
144
- return NumberSchemaBuilder.create({
145
- ...this._schema,
146
- equals: undefined
147
- });
148
- }
149
- isInteger() {
150
- if (this._isInteger === true) {
151
- return this;
152
- }
153
- return NumberSchemaBuilder.create({
154
- ...this._schema,
155
- isInteger: true
156
- });
157
- }
158
- canBeNotInteger() {
159
- if (typeof this._isInteger === 'undefined') {
160
- return this;
161
- }
162
- return NumberSchemaBuilder.create({
163
- ...this._schema,
164
- isInteger: undefined
165
- });
166
- }
167
- notNaN() {
168
- if (this._ensureNotNaN === true) {
169
- return this;
170
- }
171
- return NumberSchemaBuilder.create({
172
- ...this._schema,
173
- ensureNotNaN: true
174
- });
175
- }
176
- canBeNaN() {
177
- if (this._ensureNotNaN === false) {
178
- return this;
179
- }
180
- return NumberSchemaBuilder.create({
181
- ...this._schema,
182
- ensureNotNaN: false
183
- });
184
- }
185
- isFinite() {
186
- if (this._ensureIsFinite === true) {
187
- return this;
188
- }
189
- return NumberSchemaBuilder.create({
190
- ...this._schema,
191
- ensureIsFinite: true
192
- });
193
- }
194
- canBeInfinite() {
195
- if (this._ensureIsFinite === false) {
196
- return this;
197
- }
198
- return NumberSchemaBuilder.create({
199
- ...this._schema,
200
- ensureIsFinite: false
201
- });
202
- }
203
- }
204
- exports.NumberSchemaBuilder = NumberSchemaBuilder;
205
- const number = () => NumberSchemaBuilder.create();
206
- exports.number = number;
@@ -1,83 +0,0 @@
1
- import { ISchemaBuilder, SchemaBuilder } from './SchemaBuilder.js';
2
- import { Schema, Validator, InferType, MakeOptional, MakeRequired, MakeNullable, MakeNotNullable } from '../schema.js';
3
- export interface IObjectSchemaBuilder<TRequired extends boolean = true, TNullable extends boolean = false, TNoUnknownProperties extends boolean = true, TProperties = {}, TMapToType = undefined> extends ISchemaBuilder<TRequired, TNullable> {
4
- optional(): IObjectSchemaBuilder<false, TNullable, TNoUnknownProperties, TProperties, TMapToType>;
5
- required(): IObjectSchemaBuilder<true, TNullable, TNoUnknownProperties, TProperties, TMapToType>;
6
- nullable(): IObjectSchemaBuilder<TRequired, true, TNoUnknownProperties, TProperties, TMapToType>;
7
- notNullable(): IObjectSchemaBuilder<TRequired, false, TNoUnknownProperties, TProperties, TMapToType>;
8
- addProps<T extends Record<string, any>>(val?: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties & T, TMapToType>;
9
- removeProp<T extends keyof TProperties>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, Omit<TProperties, T>, TMapToType>;
10
- canHaveUnknownProps(): IObjectSchemaBuilder<TRequired, TNullable, false, TProperties, TMapToType>;
11
- noUnknownProps(): IObjectSchemaBuilder<TRequired, TNullable, true, TProperties, TMapToType>;
12
- setPropPreprocessor<T extends keyof TProperties | '*', S = T extends keyof TProperties ? ((value: any) => undefined | InferType<TProperties[T]> | Promise<InferType<TProperties[T]>>) | string : (value: InferType<this>) => void | Promise<void>>(property: T, validator: S): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties, TMapToType>;
13
- unsetPropPreprocessor<T extends keyof TProperties | '*'>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties, TMapToType>;
14
- clearPropsPreprocessors(): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties, TMapToType>;
15
- makeAllPropsOptional<T extends keyof TProperties>(): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, {
16
- [k in T]: MakeOptional<TProperties[k]>;
17
- }, TMapToType>;
18
- makePropOptional<T extends keyof TProperties>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, Omit<TProperties, T> & {
19
- [k in T]: MakeOptional<TProperties[k]>;
20
- }, TMapToType>;
21
- makePropRequired<T extends keyof TProperties>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, Omit<TProperties, T> & {
22
- [k in T]: MakeRequired<TProperties[k]>;
23
- }, TMapToType>;
24
- makePropNullable<T extends keyof TProperties>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, Omit<TProperties, T> & {
25
- [k in T]: MakeNullable<TProperties[k]>;
26
- }, TMapToType>;
27
- makePropNotNullable<T extends keyof TProperties>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, Omit<TProperties, T> & {
28
- [k in T]: MakeNotNullable<TProperties[k]>;
29
- }, TMapToType>;
30
- mapToType<T>(): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties, T>;
31
- clearMapToType(): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties, undefined>;
32
- }
33
- export declare class ObjectSchemaBuilder<TRequired extends boolean = true, TNullable extends boolean = false, TNoUnknownProperties extends boolean = true, TProperties = {}, TMapToType = undefined> extends SchemaBuilder<TRequired, TNullable> implements IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties, TMapToType> {
34
- protected readonly type = "object";
35
- protected noUnknownProperties?: TNoUnknownProperties;
36
- protected properties?: TProperties;
37
- protected preprocessors?: {
38
- [S in keyof TProperties | '*']?: S extends keyof TProperties ? ((value: any) => undefined | InferType<TProperties[S]> | Promise<InferType<TProperties[S]>>) | string : (value: InferType<TProperties>) => void | Promise<void>;
39
- };
40
- clone(): this;
41
- get _schema(): Schema;
42
- private constructor();
43
- static create<TCRequired extends boolean = true, TCNullable extends boolean = false, TCNoUnknownProperties extends boolean = false, TCProperties = {}, TMapToType = undefined>(obj?: {
44
- isRequired: TCRequired;
45
- isNullable: TCNullable;
46
- properties: TCProperties;
47
- noUnknownProperties: TCNoUnknownProperties;
48
- validators?: Validator[];
49
- preprocessor?: ((value: unknown) => unknown | Promise<unknown>) | string;
50
- preprocessors?: {
51
- [S in keyof TCProperties | '*']?: S extends keyof TCProperties ? ((value: any) => undefined | InferType<TCProperties[S]> | Promise<InferType<TCProperties[S]>>) | string : (value: InferType<TCProperties>) => void | Promise<void>;
52
- };
53
- }): IObjectSchemaBuilder<TCRequired, TCNullable, TCNoUnknownProperties, TCProperties, TMapToType>;
54
- canHaveUnknownProps(): IObjectSchemaBuilder<TRequired, TNullable, false, TProperties, TMapToType>;
55
- noUnknownProps(): IObjectSchemaBuilder<TRequired, TNullable, true, TProperties, TMapToType>;
56
- optional(): IObjectSchemaBuilder<false, TNullable, TNoUnknownProperties, TProperties, TMapToType>;
57
- required(): IObjectSchemaBuilder<true, TNullable, TNoUnknownProperties, TProperties, TMapToType>;
58
- nullable(): IObjectSchemaBuilder<TRequired, true, TNoUnknownProperties, TProperties, TMapToType>;
59
- notNullable(): IObjectSchemaBuilder<TRequired, false, TNoUnknownProperties, TProperties, TMapToType>;
60
- addProps<T extends Record<string, any>>(val?: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties & T, TMapToType>;
61
- removeProp<T extends keyof TProperties>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, Omit<TProperties, T>, TMapToType>;
62
- setPropPreprocessor<T extends keyof TProperties | '*', S = T extends keyof TProperties ? ((value: any) => undefined | InferType<TProperties[T]> | Promise<InferType<TProperties[T]>>) | string : (value: InferType<T>) => void | Promise<void>>(property: T, validator: S): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties, TMapToType>;
63
- unsetPropPreprocessor<T extends keyof TProperties | '*'>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties, TMapToType>;
64
- clearPropsPreprocessors(): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties, TMapToType>;
65
- mapToType<T>(): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties, T>;
66
- clearMapToType(): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, TProperties, undefined>;
67
- makeAllPropsOptional<T extends keyof TProperties>(): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, {
68
- [k in T]: MakeOptional<TProperties[k]>;
69
- }, TMapToType>;
70
- makePropOptional<T extends keyof TProperties>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, Omit<TProperties, T> & {
71
- [k in T]: MakeOptional<TProperties[k]>;
72
- }, TMapToType>;
73
- makePropRequired<T extends keyof TProperties>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, Omit<TProperties, T> & {
74
- [k in T]: MakeRequired<TProperties[k]>;
75
- }, TMapToType>;
76
- makePropNullable<T extends keyof TProperties>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, Omit<TProperties, T> & {
77
- [k in T]: MakeNullable<TProperties[k]>;
78
- }, TMapToType>;
79
- makePropNotNullable<T extends keyof TProperties>(property: T): IObjectSchemaBuilder<TRequired, TNullable, TNoUnknownProperties, Omit<TProperties, T> & {
80
- [k in T]: MakeNotNullable<TProperties[k]>;
81
- }, TMapToType>;
82
- }
83
- export declare const object: <T>(properties?: T) => IObjectSchemaBuilder<true, false, true, T extends undefined ? {} : T, undefined>;