ValidationRegistry
Defined in: core/validation/validation-registry.ts:94
Реестр валидаторов для формы
Каждый экземпляр GroupNode создает собственный реестр (композиция). Устраняет race conditions и изолирует формы друг от друга.
Наследует AbstractRegistry для унификации:
- Управления global stack
- Template methods begin/end registration
Example
class GroupNode {
private readonly validationRegistry = new ValidationRegistry();
applyValidationSchema(schemaFn) {
this.validationRegistry.beginRegistration(); // Pushes this to global stack
schemaFn(createFieldPath(this)); // Uses getCurrent()
this.validationRegistry.endRegistration(this); // Pops from global stack
}
}
Extends
AbstractRegistry<ValidatorRegistration>
Constructors
Constructor
new ValidationRegistry(): ValidationRegistry;
Returns
ValidationRegistry
Inherited from
Methods
beginRegistration()
beginRegistration(): RegistrationContext;
Defined in: core/validation/validation-registry.ts:127
Начать регистрацию валидаторов для формы
Помещает this в global stack для изоляции форм Создает новый RegistrationContext для condition management
Returns
RegistrationContext
Overrides
AbstractRegistry.beginRegistration
cancelRegistration()
cancelRegistration(): void;
Defined in: core/validation/validation-registry.ts:174
Отменить регистрацию без применения валидаторов Используется для временной валидации (например, в validateForm)
Извлекает this из global stack
Returns
void
Overrides
AbstractRegistry.cancelRegistration
completeRegistration()
protected completeRegistration(registryName): void;
Defined in: core/utils/abstract-registry.ts:130
Завершить регистрацию и извлечь из стека
Parameters
registryName
string
Имя реестра для отладки
Returns
void
Inherited from
AbstractRegistry.completeRegistration
endRegistration()
endRegistration<T>(form): void;
Defined in: core/validation/validation-registry.ts:145
Завершить регистрацию и применить валидаторы к GroupNode
Извлекает this из global stack
Сохраняет валидаторы в локальном состоянии (this.validators) вместо глобального WeakMap.
Type Parameters
T
T extends FormFields
Parameters
form
GroupNode<T>
Returns
void
enterCondition()
enterCondition(fieldPath, conditionFn): void;
Defined in: core/validation/validation-registry.ts:256
Войти в условный блок
Parameters
fieldPath
string
conditionFn
ConditionFn<unknown>
Returns
void
exitCondition()
exitCondition(): void;
Defined in: core/validation/validation-registry.ts:268
Выйти из условного блока
Returns
void
getCurrent()
static getCurrent(): ValidationRegistry | null;
Defined in: core/validation/validation-registry.ts:117
Получить текущий активный реестр из global stack
Returns
ValidationRegistry | null
Текущий активный реестр или null
Example
// В schema-validators.ts
export function required(...) {
const registry = ValidationRegistry.getCurrent();
if (registry) {
registry.registerSync(...);
}
}
getCurrentContext()
getCurrentContext(): RegistrationContext | undefined;
Defined in: core/validation/validation-registry.ts:187
Получить текущий контекст регистрации
Returns
RegistrationContext | undefined
getCurrentFromStack()
protected static getCurrentFromStack<T>(ctor): T | null;
Defined in: core/utils/abstract-registry.ts:79
Получить текущий активный реестр из стека Должен быть переопределен в наследниках как static метод
Type Parameters
T
T extends AbstractRegistry<any>
Parameters
ctor
(...args) => T
Конструктор класса реестра
Returns
T | null
Текущий активный реестр или null
Inherited from
AbstractRegistry.getCurrentFromStack
getRegistrations()
getRegistrations(): ValidatorRegistration[];
Defined in: core/utils/abstract-registry.ts:113
Получить зарегистрированные элементы
Returns
ValidatorRegistration[]
Inherited from
AbstractRegistry.getRegistrations
getStack()
protected static getStack<T>(ctor): RegistryStack<T>;
Defined in: core/utils/abstract-registry.ts:61
Получить стек для конкретного класса реестра Создает новый стек если не существует
Type Parameters
T
T extends AbstractRegistry<any>
Parameters
ctor
(...args) => T
Конструктор класса реестра
Returns
RegistryStack<T>
RegistryStack для данного класса
Inherited from
getValidators()
getValidators(): ValidatorRegistration[];
Defined in: core/validation/validation-registry.ts:311
Получить зарегистрированные валидаторы для этого реестра
Возвращает локальный массив валидаторов (без аргумента form).
Returns
ValidatorRegistration[]
isActive()
isActive(): boolean;
Defined in: core/utils/abstract-registry.ts:106
Проверить, активна ли регистрация
Returns
boolean
Inherited from
onBeginRegistration()
protected onBeginRegistration(): void;
Defined in: core/utils/abstract-registry.ts:121
Hook: вызывается в начале регистрации Может быть переопределен в наследниках для инициализации
Returns
void
Inherited from
AbstractRegistry.onBeginRegistration
registerArrayItemValidation()
registerArrayItemValidation(fieldPath, itemSchemaFn): void;
Defined in: core/validation/validation-registry.ts:286
Зарегистрировать validation schema для элементов массива
Используется функцией validateItems() для регистрации схемы валидации, которая будет применяться к каждому элементу ArrayNode.
Parameters
fieldPath
string
Путь к ArrayNode полю
itemSchemaFn
unknown
Validation schema для элемента массива
Returns
void
registerAsync()
registerAsync<TForm, TField>(
fieldPath,
validator,
options?): void;
Defined in: core/validation/validation-registry.ts:215
Зарегистрировать асинхронный валидатор
Type Parameters
TForm
TForm = unknown
TField
TField = unknown
Parameters
fieldPath
string
validator
ContextualAsyncValidatorFn<TForm, TField>
options?
Returns
void
registerSync()
registerSync<TForm, TField>(
fieldPath,
validator,
options?): void;
Defined in: core/validation/validation-registry.ts:194
Зарегистрировать синхронный валидатор
Type Parameters
TForm
TForm = unknown
TField
TField = unknown
Parameters
fieldPath
string
validator
ContextualValidatorFn<TForm, TField>
options?
Returns
void
registerTree()
registerTree<TForm>(validator, options?): void;
Defined in: core/validation/validation-registry.ts:236
Зарегистрировать tree валидатор
Type Parameters
TForm
TForm = unknown
Parameters
validator
TreeValidatorFn<TForm>
options?
Returns
void
Properties
isRegistering
protected isRegistering: boolean = false;
Defined in: core/utils/abstract-registry.ts:48
Флаг активной регистрации
Inherited from
AbstractRegistry.isRegistering
registrations
protected registrations: ValidatorRegistration[] = [];
Defined in: core/utils/abstract-registry.ts:51
Массив зарегистрированных элементов