@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.
Files changed (76) hide show
  1. package/README.md +118 -320
  2. package/dist/builders/AnySchemaBuilder.d.ts +76 -0
  3. package/dist/builders/AnySchemaBuilder.js +112 -0
  4. package/dist/builders/ArraySchemaBuilder.d.ts +112 -14
  5. package/dist/builders/ArraySchemaBuilder.js +254 -111
  6. package/dist/builders/BooleanSchemaBuilder.d.ts +69 -29
  7. package/dist/builders/BooleanSchemaBuilder.js +134 -74
  8. package/dist/builders/DateSchemaBuilder.d.ts +177 -0
  9. package/dist/builders/DateSchemaBuilder.js +433 -0
  10. package/dist/builders/FunctionSchemaBuilder.d.ts +59 -23
  11. package/dist/builders/FunctionSchemaBuilder.js +103 -56
  12. package/dist/builders/NumberSchemaBuilder.d.ts +159 -59
  13. package/dist/builders/NumberSchemaBuilder.js +345 -165
  14. package/dist/builders/ObjectSchemaBuilder.d.ts +357 -81
  15. package/dist/builders/ObjectSchemaBuilder.js +519 -283
  16. package/dist/builders/SchemaBuilder.d.ts +158 -34
  17. package/dist/builders/SchemaBuilder.js +258 -71
  18. package/dist/builders/StringSchemaBuilder.d.ts +138 -13
  19. package/dist/builders/StringSchemaBuilder.js +261 -115
  20. package/dist/builders/UnionSchemaBuilder.d.ts +129 -9
  21. package/dist/builders/UnionSchemaBuilder.js +196 -75
  22. package/dist/index.d.ts +20 -40
  23. package/dist/index.js +19 -32
  24. package/dist/utils/transaction.d.ts +46 -0
  25. package/dist/utils/transaction.js +178 -0
  26. package/package.json +27 -14
  27. package/dist/defaultSchemas.d.ts +0 -4
  28. package/dist/defaultSchemas.js +0 -45
  29. package/dist/schema.d.ts +0 -230
  30. package/dist/schema.js +0 -2
  31. package/dist/schemaRegistry.d.ts +0 -49
  32. package/dist/schemaRegistry.js +0 -278
  33. package/dist/validators/validateArray.d.ts +0 -3
  34. package/dist/validators/validateArray.js +0 -60
  35. package/dist/validators/validateBoolean.d.ts +0 -2
  36. package/dist/validators/validateBoolean.js +0 -30
  37. package/dist/validators/validateFunction.d.ts +0 -2
  38. package/dist/validators/validateFunction.js +0 -21
  39. package/dist/validators/validateNumber.d.ts +0 -2
  40. package/dist/validators/validateNumber.js +0 -69
  41. package/dist/validators/validateObject.d.ts +0 -3
  42. package/dist/validators/validateObject.js +0 -95
  43. package/dist/validators/validateString.d.ts +0 -2
  44. package/dist/validators/validateString.js +0 -50
  45. package/dist/validators/validateUnion.d.ts +0 -3
  46. package/dist/validators/validateUnion.js +0 -30
  47. package/src/builders/ArraySchemaBuilder.test.ts +0 -270
  48. package/src/builders/ArraySchemaBuilder.ts +0 -381
  49. package/src/builders/BooleanSchemaBuilder.test.ts +0 -196
  50. package/src/builders/BooleanSchemaBuilder.ts +0 -155
  51. package/src/builders/FunctionSchemaBuilder.test.ts +0 -134
  52. package/src/builders/FunctionSchemaBuilder.ts +0 -109
  53. package/src/builders/NumberSchemaBuilder.test.ts +0 -493
  54. package/src/builders/NumberSchemaBuilder.ts +0 -789
  55. package/src/builders/ObjectSchemaBuilder.test.ts +0 -657
  56. package/src/builders/ObjectSchemaBuilder.ts +0 -794
  57. package/src/builders/SchemaBuilder.test.ts +0 -73
  58. package/src/builders/SchemaBuilder.ts +0 -135
  59. package/src/builders/StringSchemaBuilder.test.ts +0 -318
  60. package/src/builders/StringSchemaBuilder.ts +0 -392
  61. package/src/builders/UnionSchemaBuilder.test.ts +0 -162
  62. package/src/builders/UnionSchemaBuilder.ts +0 -154
  63. package/src/defaultSchemas.ts +0 -44
  64. package/src/index.ts +0 -66
  65. package/src/schema.ts +0 -827
  66. package/src/schemaRegistry.builders.test.ts +0 -1393
  67. package/src/schemaRegistry.test.ts +0 -118
  68. package/src/schemaRegistry.ts +0 -461
  69. package/src/validators/validateArray.ts +0 -76
  70. package/src/validators/validateBoolean.ts +0 -36
  71. package/src/validators/validateFunction.ts +0 -25
  72. package/src/validators/validateNumber.ts +0 -82
  73. package/src/validators/validateObject.ts +0 -119
  74. package/src/validators/validateString.ts +0 -59
  75. package/src/validators/validateUnion.ts +0 -36
  76. package/tsconfig.json +0 -16
@@ -1,789 +0,0 @@
1
- import { ISchemaBuilder, SchemaBuilder } from './SchemaBuilder.js';
2
- import { defaultSchemas } from '../defaultSchemas.js';
3
- import { Schema, Validator } from '../schema.js';
4
-
5
- export interface INumberSchemaBuilder<
6
- TRequired extends boolean = true,
7
- TNullable extends boolean = false,
8
- TMin extends number | undefined = undefined,
9
- TMax extends number | undefined = undefined,
10
- TIsInteger extends boolean | undefined = undefined,
11
- TEnsureNotNaN extends boolean = true,
12
- TEnsureIsFinite extends boolean = true,
13
- TEqualsTo extends number | undefined = undefined
14
- > extends ISchemaBuilder<TRequired, TNullable> {
15
- min<K extends number>(
16
- val: K
17
- ): INumberSchemaBuilder<
18
- TRequired,
19
- TNullable,
20
- K,
21
- TMax,
22
- TIsInteger,
23
- TEnsureNotNaN,
24
- TEnsureIsFinite,
25
- TEqualsTo
26
- >;
27
- clearMin(): INumberSchemaBuilder<
28
- TRequired,
29
- TNullable,
30
- undefined,
31
- TMax,
32
- TIsInteger,
33
- TEnsureNotNaN,
34
- TEnsureIsFinite,
35
- TEqualsTo
36
- >;
37
- max<K extends number>(
38
- val: K
39
- ): INumberSchemaBuilder<
40
- TRequired,
41
- TNullable,
42
- TMin,
43
- K,
44
- TIsInteger,
45
- TEnsureNotNaN,
46
- TEnsureIsFinite,
47
- TEqualsTo
48
- >;
49
- clearMax(): INumberSchemaBuilder<
50
- TRequired,
51
- TNullable,
52
- TMin,
53
- undefined,
54
- TIsInteger,
55
- TEnsureNotNaN,
56
- TEnsureIsFinite,
57
- TEqualsTo
58
- >;
59
- optional(): INumberSchemaBuilder<
60
- false,
61
- TNullable,
62
- TMin,
63
- TMax,
64
- TIsInteger,
65
- TEnsureNotNaN,
66
- TEnsureIsFinite,
67
- TEqualsTo
68
- >;
69
- required(): INumberSchemaBuilder<
70
- true,
71
- TNullable,
72
- TMin,
73
- TMax,
74
- TIsInteger,
75
- TEnsureNotNaN,
76
- TEnsureIsFinite,
77
- TEqualsTo
78
- >;
79
- nullable(): INumberSchemaBuilder<
80
- TRequired,
81
- true,
82
- TMin,
83
- TMax,
84
- TIsInteger,
85
- TEnsureNotNaN,
86
- TEnsureIsFinite,
87
- TEqualsTo
88
- >;
89
- notNullable(): INumberSchemaBuilder<
90
- TRequired,
91
- false,
92
- TMin,
93
- TMax,
94
- TIsInteger,
95
- TEnsureNotNaN,
96
- TEnsureIsFinite,
97
- TEqualsTo
98
- >;
99
- equals<T extends number>(
100
- val: T
101
- ): INumberSchemaBuilder<
102
- TRequired,
103
- TNullable,
104
- TMin,
105
- TMax,
106
- TIsInteger,
107
- TEnsureNotNaN,
108
- TEnsureIsFinite,
109
- T
110
- >;
111
- clearEquals(): INumberSchemaBuilder<
112
- TRequired,
113
- TNullable,
114
- TMin,
115
- TMax,
116
- TIsInteger,
117
- TEnsureNotNaN,
118
- TEnsureIsFinite,
119
- undefined
120
- >;
121
- isInteger(): INumberSchemaBuilder<
122
- TRequired,
123
- TNullable,
124
- TMin,
125
- TMax,
126
- true,
127
- TEnsureNotNaN,
128
- TEnsureIsFinite,
129
- TEqualsTo
130
- >;
131
- canBeNotInteger(): INumberSchemaBuilder<
132
- TRequired,
133
- TNullable,
134
- TMin,
135
- TMax,
136
- undefined,
137
- TEnsureNotNaN,
138
- TEnsureIsFinite,
139
- TEqualsTo
140
- >;
141
- notNaN(): INumberSchemaBuilder<
142
- TRequired,
143
- TNullable,
144
- TMin,
145
- TMax,
146
- TIsInteger,
147
- true,
148
- TEnsureIsFinite,
149
- TEqualsTo
150
- >;
151
- canBeNaN(): INumberSchemaBuilder<
152
- TRequired,
153
- TNullable,
154
- TMin,
155
- TMax,
156
- TIsInteger,
157
- false,
158
- TEnsureIsFinite,
159
- TEqualsTo
160
- >;
161
-
162
- isFinite(): INumberSchemaBuilder<
163
- TRequired,
164
- TNullable,
165
- TMin,
166
- TMax,
167
- TIsInteger,
168
- TEnsureNotNaN,
169
- true,
170
- TEqualsTo
171
- >;
172
- canBeInfinite(): INumberSchemaBuilder<
173
- TRequired,
174
- TNullable,
175
- TMin,
176
- TMax,
177
- TIsInteger,
178
- TEnsureNotNaN,
179
- false,
180
- TEqualsTo
181
- >;
182
- }
183
-
184
- export class NumberSchemaBuilder<
185
- TRequired extends boolean = true,
186
- TNullable extends boolean = false,
187
- TMin extends number | undefined = undefined,
188
- TMax extends number | undefined = undefined,
189
- TIsInteger extends boolean | undefined = undefined,
190
- TEnsureNotNaN extends boolean = true,
191
- TEnsureIsFinite extends boolean = true,
192
- TEqualsTo extends number | undefined = undefined
193
- >
194
- extends SchemaBuilder<TRequired, TNullable>
195
- implements
196
- INumberSchemaBuilder<
197
- TRequired,
198
- TNullable,
199
- TMin,
200
- TMax,
201
- TIsInteger,
202
- TEnsureNotNaN,
203
- TEnsureIsFinite,
204
- TEqualsTo
205
- >
206
- {
207
- public clone(): this {
208
- return NumberSchemaBuilder.create(this._schema as any) as this;
209
- }
210
-
211
- public get _schema(): Schema {
212
- return Object.assign(
213
- {
214
- type: this.type,
215
- ensureNotNaN: this._ensureNotNaN,
216
- ensureIsFinite: this._ensureIsFinite
217
- },
218
- this.getCommonSchema(),
219
- typeof this._min !== 'undefined' ? { min: this._min } : {},
220
- typeof this._max !== 'undefined' ? { max: this._max } : {},
221
- typeof this._isInteger !== 'undefined'
222
- ? { isInteger: this._isInteger }
223
- : {},
224
- typeof this._equals !== 'undefined' ? { equals: this._equals } : {}
225
- );
226
- }
227
-
228
- public static create<
229
- TRequired extends boolean = true,
230
- TNullable extends boolean = false,
231
- TMin extends number | undefined = undefined,
232
- TMax extends number | undefined = undefined,
233
- TIsInteger extends boolean | undefined = undefined,
234
- TEnsureNotNaN extends boolean = true,
235
- TEnsureIsFinite extends boolean = true,
236
- TEqualsTo extends number | undefined = undefined
237
- >(obj?: {
238
- isRequired: TRequired;
239
- isNullable: TNullable;
240
- min: TMin;
241
- max: TMax;
242
- isInteger: TIsInteger;
243
- ensureNotNaN: TEnsureNotNaN;
244
- ensureIsFinite: TEnsureIsFinite;
245
- equals: TEqualsTo;
246
- validators?: Validator[];
247
- preprocessor?:
248
- | ((value: unknown) => unknown | Promise<unknown>)
249
- | string;
250
- }): INumberSchemaBuilder<
251
- TRequired,
252
- TNullable,
253
- TMin,
254
- TMax,
255
- TIsInteger,
256
- TEnsureNotNaN,
257
- TEnsureIsFinite,
258
- TEqualsTo
259
- > {
260
- return new NumberSchemaBuilder(obj as any);
261
- }
262
-
263
- private constructor(obj: {
264
- isRequired: TRequired;
265
- isNullable: TNullable;
266
- min: TMin;
267
- max: TMax;
268
- isInteger: TIsInteger;
269
- ensureNotNaN: TEnsureNotNaN;
270
- ensureIsFinite: TEnsureIsFinite;
271
- equals: TEqualsTo;
272
- validators?: Validator[];
273
- preprocessor?:
274
- | ((value: unknown) => unknown | Promise<unknown>)
275
- | string;
276
- }) {
277
- super(obj);
278
- if (typeof obj === 'object' && obj) {
279
- if (typeof obj.min !== 'undefined') {
280
- this._min = obj.min;
281
- }
282
- if (typeof obj.max !== 'undefined') {
283
- this._max = obj.max;
284
- }
285
- if (typeof obj.isInteger !== 'undefined') {
286
- this._isInteger = obj.isInteger;
287
- }
288
- if (typeof obj.ensureNotNaN !== 'undefined') {
289
- this._ensureNotNaN = obj.ensureNotNaN;
290
- }
291
- if (typeof obj.ensureIsFinite !== 'undefined') {
292
- this._ensureIsFinite = obj.ensureIsFinite;
293
- }
294
- if (typeof obj.equals !== 'undefined') {
295
- this._equals = obj.equals;
296
- }
297
- } else {
298
- const defaultSchema = defaultSchemas['number'] as any;
299
- this.isRequired = defaultSchema.isRequired;
300
- this.isNullable = defaultSchema.isNullable;
301
- this._ensureNotNaN = defaultSchema.ensureNotNaN;
302
- this._ensureIsFinite = defaultSchema.ensureIsFinite;
303
- }
304
- }
305
-
306
- protected readonly type = 'number';
307
-
308
- _min?: TMin;
309
- _max?: TMax;
310
- _isInteger?: TIsInteger;
311
- _ensureNotNaN: TEnsureNotNaN = true as TEnsureNotNaN;
312
- _ensureIsFinite: TEnsureIsFinite = true as TEnsureIsFinite;
313
- _equals?: TEqualsTo;
314
-
315
- min<K extends number>(
316
- val: K
317
- ): INumberSchemaBuilder<
318
- TRequired,
319
- TNullable,
320
- K,
321
- TMax,
322
- TIsInteger,
323
- TEnsureNotNaN,
324
- TEnsureIsFinite,
325
- TEqualsTo
326
- > {
327
- if ((this._min as any) === val) {
328
- return this as any as INumberSchemaBuilder<
329
- TRequired,
330
- TNullable,
331
- K,
332
- TMax,
333
- TIsInteger,
334
- TEnsureNotNaN,
335
- TEnsureIsFinite,
336
- TEqualsTo
337
- >;
338
- }
339
- return NumberSchemaBuilder.create({
340
- ...(this._schema as any),
341
- min: val
342
- });
343
- }
344
-
345
- clearMin(): INumberSchemaBuilder<
346
- TRequired,
347
- TNullable,
348
- undefined,
349
- TMax,
350
- TIsInteger,
351
- TEnsureNotNaN,
352
- TEnsureIsFinite,
353
- TEqualsTo
354
- > {
355
- if (typeof this._min === 'undefined') {
356
- return this as any as INumberSchemaBuilder<
357
- TRequired,
358
- TNullable,
359
- undefined,
360
- TMax,
361
- TIsInteger,
362
- TEnsureNotNaN,
363
- TEnsureIsFinite,
364
- TEqualsTo
365
- >;
366
- }
367
- return NumberSchemaBuilder.create({
368
- ...(this._schema as any),
369
- min: undefined
370
- });
371
- }
372
-
373
- max<K extends number>(
374
- val: K
375
- ): INumberSchemaBuilder<
376
- TRequired,
377
- TNullable,
378
- TMin,
379
- K,
380
- TIsInteger,
381
- TEnsureNotNaN,
382
- TEnsureIsFinite,
383
- TEqualsTo
384
- > {
385
- if ((this._max as any) === val) {
386
- return this as any as INumberSchemaBuilder<
387
- TRequired,
388
- TNullable,
389
- TMin,
390
- K,
391
- TIsInteger,
392
- TEnsureNotNaN,
393
- TEnsureIsFinite,
394
- TEqualsTo
395
- >;
396
- }
397
- return NumberSchemaBuilder.create({
398
- ...(this._schema as any),
399
- max: val
400
- });
401
- }
402
-
403
- clearMax(): INumberSchemaBuilder<
404
- TRequired,
405
- TNullable,
406
- TMin,
407
- undefined,
408
- TIsInteger,
409
- TEnsureNotNaN,
410
- TEnsureIsFinite,
411
- TEqualsTo
412
- > {
413
- if (typeof this._max === 'undefined') {
414
- return this as INumberSchemaBuilder<
415
- TRequired,
416
- TNullable,
417
- TMin,
418
- undefined,
419
- TIsInteger,
420
- TEnsureNotNaN,
421
- TEnsureIsFinite,
422
- TEqualsTo
423
- >;
424
- }
425
- return NumberSchemaBuilder.create({
426
- ...(this._schema as any),
427
- max: undefined
428
- });
429
- }
430
-
431
- optional(): INumberSchemaBuilder<
432
- false,
433
- TNullable,
434
- TMin,
435
- TMax,
436
- TIsInteger,
437
- TEnsureNotNaN,
438
- TEnsureIsFinite,
439
- TEqualsTo
440
- > {
441
- if (this.isRequired === false) {
442
- return this as INumberSchemaBuilder<
443
- false,
444
- TNullable,
445
- TMin,
446
- TMax,
447
- TIsInteger,
448
- TEnsureNotNaN,
449
- TEnsureIsFinite,
450
- TEqualsTo
451
- >;
452
- }
453
- return NumberSchemaBuilder.create({
454
- ...(this._schema as any),
455
- isRequired: false
456
- }) as INumberSchemaBuilder<
457
- false,
458
- TNullable,
459
- TMin,
460
- TMax,
461
- TIsInteger,
462
- TEnsureNotNaN,
463
- TEnsureIsFinite,
464
- TEqualsTo
465
- >;
466
- }
467
-
468
- required(): INumberSchemaBuilder<
469
- true,
470
- TNullable,
471
- TMin,
472
- TMax,
473
- TIsInteger,
474
- TEnsureNotNaN,
475
- TEnsureIsFinite,
476
- TEqualsTo
477
- > {
478
- if (this.isRequired === true) {
479
- return this as INumberSchemaBuilder<
480
- true,
481
- TNullable,
482
- TMin,
483
- TMax,
484
- TIsInteger,
485
- TEnsureNotNaN,
486
- TEnsureIsFinite,
487
- TEqualsTo
488
- >;
489
- }
490
- return NumberSchemaBuilder.create({
491
- ...(this._schema as any),
492
- isRequired: true
493
- });
494
- }
495
-
496
- nullable(): INumberSchemaBuilder<
497
- TRequired,
498
- true,
499
- TMin,
500
- TMax,
501
- TIsInteger,
502
- TEnsureNotNaN,
503
- TEnsureIsFinite,
504
- TEqualsTo
505
- > {
506
- if (this.isNullable === true) {
507
- return this as INumberSchemaBuilder<
508
- TRequired,
509
- true,
510
- TMin,
511
- TMax,
512
- TIsInteger,
513
- TEnsureNotNaN,
514
- TEnsureIsFinite,
515
- TEqualsTo
516
- >;
517
- }
518
- return NumberSchemaBuilder.create({
519
- ...(this._schema as any),
520
- isNullable: true
521
- });
522
- }
523
-
524
- notNullable(): INumberSchemaBuilder<
525
- TRequired,
526
- false,
527
- TMin,
528
- TMax,
529
- TIsInteger,
530
- TEnsureNotNaN,
531
- TEnsureIsFinite,
532
- TEqualsTo
533
- > {
534
- if (this.isNullable === false) {
535
- return this as INumberSchemaBuilder<
536
- TRequired,
537
- false,
538
- TMin,
539
- TMax,
540
- TIsInteger,
541
- TEnsureNotNaN,
542
- TEnsureIsFinite,
543
- TEqualsTo
544
- >;
545
- }
546
- return NumberSchemaBuilder.create({
547
- ...(this._schema as any),
548
- isNullable: false
549
- }) as INumberSchemaBuilder<
550
- TRequired,
551
- false,
552
- TMin,
553
- TMax,
554
- TIsInteger,
555
- TEnsureNotNaN,
556
- TEnsureIsFinite,
557
- TEqualsTo
558
- >;
559
- }
560
-
561
- equals<T extends number>(
562
- val: T
563
- ): INumberSchemaBuilder<
564
- TRequired,
565
- TNullable,
566
- TMin,
567
- TMax,
568
- TIsInteger,
569
- TEnsureNotNaN,
570
- TEnsureIsFinite,
571
- T
572
- > {
573
- if ((this._equals as any) === val) {
574
- return this as any as INumberSchemaBuilder<
575
- TRequired,
576
- TNullable,
577
- TMin,
578
- TMax,
579
- TIsInteger,
580
- TEnsureNotNaN,
581
- TEnsureIsFinite,
582
- T
583
- >;
584
- }
585
-
586
- return NumberSchemaBuilder.create({
587
- ...(this._schema as any),
588
- equals: val as T
589
- });
590
- }
591
-
592
- clearEquals(): INumberSchemaBuilder<
593
- TRequired,
594
- TNullable,
595
- TMin,
596
- TMax,
597
- TIsInteger,
598
- TEnsureNotNaN,
599
- TEnsureIsFinite,
600
- undefined
601
- > {
602
- if (typeof this._equals === 'undefined') {
603
- return this as INumberSchemaBuilder<
604
- TRequired,
605
- TNullable,
606
- TMin,
607
- TMax,
608
- TIsInteger,
609
- TEnsureNotNaN,
610
- TEnsureIsFinite,
611
- undefined
612
- >;
613
- }
614
- return NumberSchemaBuilder.create({
615
- ...(this._schema as any),
616
- equals: undefined
617
- });
618
- }
619
-
620
- isInteger(): INumberSchemaBuilder<
621
- TRequired,
622
- TNullable,
623
- TMin,
624
- TMax,
625
- true,
626
- TEnsureNotNaN,
627
- TEnsureIsFinite,
628
- TEqualsTo
629
- > {
630
- if (this._isInteger === true) {
631
- return this as INumberSchemaBuilder<
632
- TRequired,
633
- TNullable,
634
- TMin,
635
- TMax,
636
- true,
637
- TEnsureNotNaN,
638
- TEnsureIsFinite,
639
- TEqualsTo
640
- >;
641
- }
642
- return NumberSchemaBuilder.create({
643
- ...(this._schema as any),
644
- isInteger: true
645
- });
646
- }
647
-
648
- canBeNotInteger(): INumberSchemaBuilder<
649
- TRequired,
650
- TNullable,
651
- TMin,
652
- TMax,
653
- undefined,
654
- TEnsureNotNaN,
655
- TEnsureIsFinite,
656
- TEqualsTo
657
- > {
658
- if (typeof this._isInteger === 'undefined') {
659
- return this as INumberSchemaBuilder<
660
- TRequired,
661
- TNullable,
662
- TMin,
663
- TMax,
664
- undefined,
665
- TEnsureNotNaN,
666
- TEnsureIsFinite,
667
- TEqualsTo
668
- >;
669
- }
670
- return NumberSchemaBuilder.create({
671
- ...(this._schema as any),
672
- isInteger: undefined
673
- });
674
- }
675
-
676
- notNaN(): INumberSchemaBuilder<
677
- TRequired,
678
- TNullable,
679
- TMin,
680
- TMax,
681
- TIsInteger,
682
- true,
683
- TEnsureIsFinite,
684
- TEqualsTo
685
- > {
686
- if (this._ensureNotNaN === true) {
687
- return this as INumberSchemaBuilder<
688
- TRequired,
689
- TNullable,
690
- TMin,
691
- TMax,
692
- TIsInteger,
693
- true,
694
- TEnsureIsFinite,
695
- TEqualsTo
696
- >;
697
- }
698
- return NumberSchemaBuilder.create({
699
- ...(this._schema as any),
700
- ensureNotNaN: true
701
- });
702
- }
703
-
704
- canBeNaN(): INumberSchemaBuilder<
705
- TRequired,
706
- TNullable,
707
- TMin,
708
- TMax,
709
- TIsInteger,
710
- false,
711
- TEnsureIsFinite,
712
- TEqualsTo
713
- > {
714
- if (this._ensureNotNaN === false) {
715
- return this as INumberSchemaBuilder<
716
- TRequired,
717
- TNullable,
718
- TMin,
719
- TMax,
720
- TIsInteger,
721
- false,
722
- TEnsureIsFinite,
723
- TEqualsTo
724
- >;
725
- }
726
- return NumberSchemaBuilder.create({
727
- ...(this._schema as any),
728
- ensureNotNaN: false
729
- });
730
- }
731
-
732
- isFinite(): INumberSchemaBuilder<
733
- TRequired,
734
- TNullable,
735
- TMin,
736
- TMax,
737
- TIsInteger,
738
- TEnsureNotNaN,
739
- true,
740
- TEqualsTo
741
- > {
742
- if (this._ensureIsFinite === true) {
743
- return this as INumberSchemaBuilder<
744
- TRequired,
745
- TNullable,
746
- TMin,
747
- TMax,
748
- TIsInteger,
749
- TEnsureNotNaN,
750
- true,
751
- TEqualsTo
752
- >;
753
- }
754
- return NumberSchemaBuilder.create({
755
- ...(this._schema as any),
756
- ensureIsFinite: true
757
- });
758
- }
759
-
760
- canBeInfinite(): INumberSchemaBuilder<
761
- TRequired,
762
- TNullable,
763
- TMin,
764
- TMax,
765
- TIsInteger,
766
- TEnsureNotNaN,
767
- false,
768
- TEqualsTo
769
- > {
770
- if (this._ensureIsFinite === false) {
771
- return this as INumberSchemaBuilder<
772
- TRequired,
773
- TNullable,
774
- TMin,
775
- TMax,
776
- TIsInteger,
777
- TEnsureNotNaN,
778
- false,
779
- TEqualsTo
780
- >;
781
- }
782
- return NumberSchemaBuilder.create({
783
- ...(this._schema as any),
784
- ensureIsFinite: false
785
- });
786
- }
787
- }
788
-
789
- export const number = () => NumberSchemaBuilder.create();