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 функция
options?
Опции behavior (debounce)
Returns
void
Example
const handler = createCopyBehavior(target, source, { when: ... });
registry.register(handler, { debounce: 300 });