java-bean-validation.js
Version:
Java Bean Validation implementation for JavaScript
69 lines (68 loc) • 3.23 kB
TypeScript
export interface TypeValidationsDescriptor {
typeName: TypeName;
constraints?: ConstraintValidationsDescriptor[];
properties?: TypeValidationsPropertyDescriptorMap;
isBasicType?: boolean;
isCollection?: boolean;
valueDescriptor?: PropertyValidationsDescriptor;
}
export declare type TypeValidationsDescriptorFactory = (typeName: TypeName) => TypeValidationsDescriptor;
export interface PropertyValidationsDescriptor {
porpertyTypeName: TypeName;
constraints?: ConstraintValidationsDescriptor[];
cascade?: boolean;
groupConversions?: GroupConversions;
}
export interface TypeValidationsPropertyDescriptorMap {
[propertyName: string]: PropertyValidationsDescriptor;
}
export interface GroupConversions {
[groupNameFrom: string]: string | undefined;
}
export interface ConstraintValidationsDescriptor {
constraintName: string;
attributes?: any & {
groups?: string[];
message?: string;
};
composingConstraints?: ConstraintValidationsDescriptor[];
reportAsSingle?: boolean;
hasNoValidator?: boolean;
defaultValuesLoaded?: boolean;
}
export interface Violation {
constraintDescriptor: ConstraintValidationsDescriptor;
invalidValue: any;
messageTemplate: string;
message: string;
propertyPath: string;
}
export interface Validator {
(value: any, attributes: any, constraint: ConstraintValidationsDescriptor, path: string, globalViolations: Violation[], violations: Violation[]): boolean;
isGlobalValidator?: boolean;
isHtmlRequiredValidator?: boolean;
defaultValues?: {
[propertyName: string]: any | undefined;
};
}
export declare type TypeName = string | string[];
export declare type MessageFormatter = (template: string, attributes: any, invalidValue: any) => string;
export declare const TYPE_DESCRIPTORS: {
[typeName: string]: TypeValidationsDescriptor | TypeValidationsDescriptorFactory | undefined;
};
export declare const GROUPS_INHERITANCE: {
[groupName: string]: string[] | undefined;
};
export declare const VALIDATORS: {
[constraintName: string]: Validator | undefined;
};
export declare const DEFAULT_GROUP = "Default";
export declare const DEFAULT_GROUPS: string[];
export declare function getMessageFormatter(): MessageFormatter;
export declare function setMessageFormatter(formatter: MessageFormatter): void;
export declare function getTypeDescriptor(typeName: TypeName, value: any, path: string, globalViolations: Violation[]): TypeValidationsDescriptor | null;
export declare function getPropertyDescriptor(type: TypeValidationsDescriptor, objectWithProperty: any, propertyName: string | number, path: string, globalViolations: Violation[]): PropertyValidationsDescriptor | null;
export declare function groupAllowed(candidateGroups: string[], allowedGroups?: string[]): boolean;
export declare function convertGroups(currentGroups: string[], groupConversions?: GroupConversions): string[];
export declare function addViolation(constraint: ConstraintValidationsDescriptor, invalidValue: any, path: string, violations: Violation[]): void;
export declare function loadDefaultConstraintValues(constraint: ConstraintValidationsDescriptor, validator: Validator): void;