Контекст для MetaFor - v2.3.1
    Preparing search index...

    Interface Context<C>

    Основной интерфейс контекста. Предоставляет типобезопасный доступ к схеме и значениям, контролируемые обновления и подписки на изменения.

    const ctx = contextFromSchema(contextSchema((t) => ({
    name: t.string.required("Гость", { title: "Имя" }),
    age: t.number.optional()
    })))

    // чтение через иммутабельный объект
    console.log(ctx.context.name) // "Гость"

    // обновление с возвратом изменённых полей
    const changed = ctx.update({ name: "Иван", age: 25 })

    // подписка на обновления
    const unsubscribe = ctx.onUpdate((updated) => {
    console.log("Changed:", updated)
    })
    interface Context<C extends Schema> {
        schema: C;
        context: Values<C>;
        update: (values: Partial<Values<C>>) => Partial<Values<C>>;
        onUpdate: (callback: (updated: Partial<Values<C>>) => void) => () => void;
        clearSubscribers: () => void;
        snapshot: Snapshot<C>;
    }

    Type Parameters

    • C extends Schema

      Тип схемы контекста

    Index

    Properties

    schema: C

    Схема контекста с метаданными полей

    context: Values<C>

    Иммутабельный объект значений контекста (только для чтения)

    update: (values: Partial<Values<C>>) => Partial<Values<C>>

    Обновляет значения контекста. Возвращает только реально изменённые поля.

    Type Declaration

      • (values: Partial<Values<C>>): Partial<Values<C>>
      • Parameters

        • values: Partial<Values<C>>

          Частичное обновление значений

        Returns Partial<Values<C>>

        Объект с изменёнными полями

    onUpdate: (callback: (updated: Partial<Values<C>>) => void) => () => void

    Подписка на обновления контекста.

    Type Declaration

      • (callback: (updated: Partial<Values<C>>) => void): () => void
      • Parameters

        • callback: (updated: Partial<Values<C>>) => void

          Функция, вызываемая при изменениях

        Returns () => void

        Функция отписки

    clearSubscribers: () => void

    Очищает все подписки на обновления контекста.

    snapshot: Snapshot<C>

    Полный снимок контекста с метаданными и текущими значениями