UNPKG

1.46 kBPlain TextView Raw
1import {
2 AlternativesSchema,
3 AnySchema,
4 ArraySchema,
5 BinarySchema,
6 BooleanSchema,
7 DateSchema,
8 FunctionSchema,
9 NumberSchema,
10 ObjectSchema,
11 StringSchema,
12} from 'joi'
13
14/* eslint-disable unused-imports/no-unused-vars */
15
16export type SchemaTyped<IN, OUT = IN> =
17 | AnySchemaTyped<IN, OUT>
18 | ArraySchemaTyped<IN>
19 | AlternativesSchemaTyped<IN>
20 | BinarySchemaTyped
21 | BooleanSchemaTyped
22 | DateSchemaTyped<IN>
23 | FunctionSchemaTyped<IN>
24 | NumberSchemaTyped
25 | ObjectSchemaTyped<IN, OUT>
26 | StringSchemaTyped
27
28/**
29 * IN - value before validation/conversion
30 * OUT - value after validation/conversion (can be different due to conversion, stripping, etc)
31 */
32export interface AnySchemaTyped<IN, OUT = IN> extends AnySchema {}
33
34export interface ArraySchemaTyped<T> extends ArraySchema, AnySchemaTyped<T[]> {}
35export interface AlternativesSchemaTyped<T> extends AlternativesSchema {}
36export interface BinarySchemaTyped extends BinarySchema, AnySchemaTyped<Buffer> {}
37export interface BooleanSchemaTyped extends BooleanSchema, AnySchemaTyped<boolean> {}
38export interface DateSchemaTyped<T> extends DateSchema {}
39export interface FunctionSchemaTyped<T> extends FunctionSchema {}
40export interface NumberSchemaTyped extends NumberSchema, AnySchemaTyped<number> {}
41export interface ObjectSchemaTyped<IN, OUT = IN> extends ObjectSchema, AnySchemaTyped<IN, OUT> {}
42export interface StringSchemaTyped extends StringSchema, AnySchemaTyped<string> {}