ValidationRegistry
Defined in: core/validation/validation-registry.ts:90
Реестр валидаторов для формы
Каждый экземпляр GroupNode создает собственный реестр (композиция). Устраняет race conditions и изолирует формы друг от друга.
Context stack используется для tracking текущего активного реестра:
- beginRegistration() помещает this в global stack
- endRegistration() извлекает из global stack
- getCurrent() возвращает текущий активный реестр
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
}
}
Constructors
Constructor
new ValidationRegistry(): ValidationRegistry;
Returns
ValidationRegistry
Methods
beginRegistration()
beginRegistration(): RegistrationContext;
Defined in: core/validation/validation-registry.ts:125
Начать регистрацию валидаторов для формы
Помещает this в global stack для изоляции форм
Returns
RegistrationContext
cancelRegistration()
cancelRegistration(): void;
Defined in: core/validation/validation-registry.ts:165
Отменить регистрацию без применения валидаторов Используется для временной валидации (например, в validateForm)
Извлекает this из global stack
Returns
void
endRegistration()
endRegistration<T>(form): void;
Defined in: core/validation/validation-registry.ts:140
Завершить регистрацию и применить валидаторы к 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:249
Войти в условный блок
Parameters
fieldPath
string
conditionFn
ConditionFn<unknown>
Returns
void
exitCondition()
exitCondition(): void;
Defined in: core/validation/validation-registry.ts:261
Выйти из условного блока
Returns
void
getCurrent()
static getCurrent(): ValidationRegistry | null;
Defined in: core/validation/validation-registry.ts:116
Получить текущий активный реестр из 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:180
Получить текущий контекст регистрации
Returns
RegistrationContext | undefined
getValidators()
getValidators(): ValidatorRegistration[];
Defined in: core/validation/validation-registry.ts:304
Получить зарегистрированные валидаторы для этого реестра
Возвращает локальный массив валидаторов (без аргумента form).
Returns
ValidatorRegistration[]
registerArrayItemValidation()
registerArrayItemValidation(fieldPath, itemSchemaFn): void;
Defined in: core/validation/validation-registry.ts:279
Зарегистрировать 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:208
Зарегистрировать асинхронный валидатор
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:187
Зарегистрировать синхронный валидатор
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:229
Зарегистрировать tree валидатор
Type Parameters
TForm
TForm = unknown
Parameters
validator
TreeValidatorFn<TForm>
options?
Returns
void