UNPKG

one-schema

Version:
126 lines (125 loc) 4.79 kB
declare type FieldDataType = 'bool' | 'string' | 'int32' | 'float64' | 'object' | 'array'; interface IValidatorDefinition { fnc: (value: any, validatorOptions: any) => boolean; types?: FieldDataType[]; } declare type IValidatorInputOptions = { id: string; } & { [key: string]: any; }; interface IFieldValidatorSettingsBase { type?: FieldDataType; required?: boolean; defaultValue?: any; tags?: string[]; description?: any; example?: any; validator?: IValidatorInputOptions; } interface IFieldValidatorSettingsBool extends IFieldValidatorSettingsBase { type: 'bool'; defaultValue?: boolean; example?: boolean; oneOf?: boolean[]; } interface IFieldValidatorSettingsString extends IFieldValidatorSettingsBase { type: 'string'; defaultValue?: string; example?: string; max?: number; min?: number; allowNull?: boolean; primaryKey?: boolean; autoIncrement?: boolean; oneOf?: (string | null)[]; uuid?: boolean; } interface IFieldValidatorSettingsInt32 extends IFieldValidatorSettingsBase { type: 'int32'; defaultValue?: number; example?: number; max?: number; min?: number; primaryKey?: boolean; autoIncrement?: boolean; oneOf?: number[]; } interface IFieldValidatorSettingsFloat64 extends IFieldValidatorSettingsBase { type: 'float64'; defaultValue?: number; example?: number; max?: number; min?: number; oneOf?: number[]; allowNaN?: boolean; } interface IFieldValidatorSettingsObject extends IFieldValidatorSettingsBase { type: 'object'; defaultValue?: Record<string, unknown>; example?: Record<string, unknown>; schema?: IFieldValidatorSchema; } interface IFieldValidatorSettingsArray extends IFieldValidatorSettingsBase { type: 'array'; defaultValue?: any[]; example?: any[]; max?: number; min?: number; arrayOf?: IFieldValidatorSerializedReal; } interface IFieldValidatorSettingsNone extends IFieldValidatorSettingsBase { type: undefined; } declare type IFieldValidatorSettingsReal = IFieldValidatorSettingsBool | IFieldValidatorSettingsString | IFieldValidatorSettingsInt32 | IFieldValidatorSettingsFloat64 | IFieldValidatorSettingsObject | IFieldValidatorSettingsArray; interface IFieldValidatorSerialized { settings: IFieldValidatorSettingsNone | IFieldValidatorSettingsBool | IFieldValidatorSettingsString | IFieldValidatorSettingsInt32 | IFieldValidatorSettingsFloat64 | IFieldValidatorSettingsObject | IFieldValidatorSettingsArray; } interface IFieldValidatorSerializedReal { settings: IFieldValidatorSettingsReal; } interface IFieldValidatorSerializedBool { settings: IFieldValidatorSettingsBool; } interface IFieldValidatorSerializedString { settings: IFieldValidatorSettingsString; } interface IFieldValidatorSerializedInt32 { settings: IFieldValidatorSettingsInt32; } interface IFieldValidatorSerializedFloat64 { settings: IFieldValidatorSettingsFloat64; } interface IFieldValidatorSerializedObject { settings: IFieldValidatorSettingsObject; } interface IFieldValidatorSerializedArray { settings: IFieldValidatorSettingsArray; } interface IFieldValidatorSerializedNone { settings: IFieldValidatorSettingsNone; } interface IFieldValidatorBase extends IFieldValidatorSerialized { settings: IFieldValidatorSettingsNone | IFieldValidatorSettingsReal; required(required?: boolean): IFieldValidatorBase; defaultValue(defaultValue: any): IFieldValidatorBase; tags(tags: string[]): IFieldValidatorBase; description(description: string): IFieldValidatorBase; example(example: any): IFieldValidatorBase; validator(validator: IValidatorInputOptions): IFieldValidatorBase; } interface IFieldValidatorReal extends IFieldValidatorBase { settings: IFieldValidatorSettingsReal; } interface IValidateOptions { typeOnly?: boolean; noRequired?: boolean; } interface IValidateResult { error?: string; success: boolean; } declare type IFieldValidatorSchema = { [key: string]: IFieldValidatorSerializedReal; }; export { FieldDataType, IValidatorDefinition, IFieldValidatorSettingsBase, IFieldValidatorSettingsBool, IFieldValidatorSettingsString, IFieldValidatorSettingsInt32, IFieldValidatorSettingsFloat64, IFieldValidatorSettingsObject, IFieldValidatorSettingsArray, IFieldValidatorSettingsReal, IValidatorInputOptions, IFieldValidatorSchema, IFieldValidatorSerialized, IFieldValidatorSerializedReal, IFieldValidatorSerializedNone, IFieldValidatorSerializedBool, IFieldValidatorSerializedString, IFieldValidatorSerializedInt32, IFieldValidatorSerializedFloat64, IFieldValidatorSerializedObject, IFieldValidatorSerializedArray, IFieldValidatorBase, IFieldValidatorReal, IValidateOptions, IValidateResult, };