Перейти к основному содержимому

BehaviorRegistry

Defined in: core/behavior/behavior-registry.ts:47

Реестр behaviors для формы

Каждый экземпляр GroupNode создает собственный реестр (композиция). Устраняет race conditions и изолирует формы друг от друга.

Context stack используется для tracking текущего активного реестра:

  • beginRegistration() помещает this в stack
  • endRegistration() извлекает из stack
  • getCurrent() возвращает текущий активный реестр

Example

class GroupNode {
private readonly behaviorRegistry = new BehaviorRegistry();

applyBehaviorSchema(schemaFn) {
this.behaviorRegistry.beginRegistration(); // Pushes this to stack
schemaFn(createBehaviorFieldPath(this)); // Uses getCurrent()
return this.behaviorRegistry.endRegistration(this); // Pops from stack
}
}

Constructors

Constructor

new BehaviorRegistry(): BehaviorRegistry;

Returns

BehaviorRegistry

Methods

beginRegistration()

beginRegistration(): void;

Defined in: core/behavior/behavior-registry.ts:83

Начать регистрацию behaviors Вызывается перед применением схемы

Помещает this в context stack для изоляции форм

Returns

void


endRegistration()

endRegistration<T>(form): object;

Defined in: core/behavior/behavior-registry.ts:128

Завершить регистрацию и применить behaviors к форме Создает effect подписки для всех зарегистрированных behaviors

Извлекает this из context stack

Type Parameters

T

T extends FormFields

Parameters

form

GroupNode<T>

GroupNode формы

Returns

object

Количество зарегистрированных behaviors и функция cleanup

cleanup()
cleanup: () => void;
Returns

void

count
count: number;

getCurrent()

static getCurrent(): BehaviorRegistry | null;

Defined in: core/behavior/behavior-registry.ts:73

Получить текущий активный реестр из context stack

Returns

BehaviorRegistry | null

Текущий активный реестр или null

Example

// В schema-behaviors.ts
export function copyFrom(...) {
const registry = BehaviorRegistry.getCurrent();
if (registry) {
registry.register({ ... });
}
}

register()

register<T>(handler, options?): void;

Defined in: core/behavior/behavior-registry.ts:103

Зарегистрировать behavior handler Вызывается функциями из schema-behaviors.ts

Type Parameters

T

T extends FormFields

Parameters

handler

BehaviorHandlerFn<T>

BehaviorHandlerFn функция

options?

BehaviorOptions

Опции behavior (debounce)

Returns

void

Example

const handler = createCopyBehavior(target, source, { when: ... });
registry.register(handler, { debounce: 300 });