Skip to main content

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?

ValidateAsyncOptions

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?

ValidateOptions

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?

ValidateTreeOptions

Returns

void