@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
44 lines (40 loc) • 1.51 kB
text/typescript
import {
AlternativesSchema,
AnySchema,
ArraySchema,
BinarySchema,
BooleanSchema,
DateSchema,
FunctionSchema,
LazySchema,
NumberSchema,
ObjectSchema,
StringSchema,
} from '@hapi/joi'
export type SchemaTyped<IN, OUT = IN> =
| AnySchemaTyped<IN, OUT>
| ArraySchemaTyped<IN>
| AlternativesSchemaTyped<IN>
| BinarySchemaTyped
| BooleanSchemaTyped
| DateSchemaTyped<IN>
| FunctionSchemaTyped<IN>
| NumberSchemaTyped
| ObjectSchemaTyped<IN, OUT>
| StringSchemaTyped
| LazySchemaTyped<IN>
/**
* IN - value before validation/conversion
* OUT - value after validation/conversion (can be different due to conversion, stripping, etc)
*/
export interface AnySchemaTyped<IN, OUT = IN> extends AnySchema {}
export interface ArraySchemaTyped<T> extends ArraySchema, AnySchemaTyped<T[]> {}
export interface AlternativesSchemaTyped<T> extends AlternativesSchema {}
export interface BinarySchemaTyped extends BinarySchema, AnySchemaTyped<Buffer> {}
export interface BooleanSchemaTyped extends BooleanSchema, AnySchemaTyped<boolean> {}
export interface DateSchemaTyped<T> extends DateSchema {}
export interface FunctionSchemaTyped<T> extends FunctionSchema {}
export interface NumberSchemaTyped extends NumberSchema, AnySchemaTyped<number> {}
export interface ObjectSchemaTyped<IN, OUT = IN> extends ObjectSchema, AnySchemaTyped<IN, OUT> {}
export interface StringSchemaTyped extends StringSchema, AnySchemaTyped<string> {}
export interface LazySchemaTyped<T> extends LazySchema {}