MetaFor - v0.3.1
    Preparing search index...

    Interface ContextInstance<C>

    Интерфейс для экземпляра контекста

    import { test, expect } from "bun:test"
    import { types, createContext } from "../index"

    test("Создание контекста с базовыми типами", () => {
    const { context } = createContext({
    name: types.string.required("Гость")({ title: "Имя пользователя" }),
    age: types.number.optional()({ title: "Возраст" }),
    isActive: types.boolean.required(true)({ title: "Активен" }),
    role: types.enum("user", "admin", "moderator").required("user")({ title: "Роль" }),
    tags: types.array.optional()({ title: "Теги" }),
    description: types.string.optional(), // без title
    })

    // Проверяем значения
    expect(context.name, "Поле name должно быть 'Гость'").toBe("Гость")
    expect(context.age, "Поле age должно быть null").toBe(null)
    expect(context.isActive, "Поле isActive должно быть true").toBe(true)
    expect(context.role, "Поле role должно быть 'user'").toBe("user")
    expect(context.tags, "Поле tags должно быть null").toBe(null)
    expect(context.description, "Поле description должно быть null").toBe(null)

    // Проверяем метаданные
    expect(context._title.name, "Метаданные name должны быть доступны").toBe("Имя пользователя")
    expect(context._title.age, "Метаданные age должны быть доступны").toBe("Возраст")
    expect(context._title.isActive, "Метаданные isActive должны быть доступны").toBe("Активен")
    expect(context._title.role, "Метаданные role должны быть доступны").toBe("Роль")
    expect(context._title.tags, "Метаданные tags должны быть доступны").toBe("Теги")
    expect(context._title.description, "Метаданные description должны быть пустой строкой").toBe("")
    })
    interface ContextInstance<C extends ContextSchema> {
        schema: SerializedSchema<C>;
        context: ExtractValues<C> & { _title: Record<keyof C, string> };
        update: Update<C>;
        onUpdate: OnUpdate<C>;
        getSnapshot: () => ExtractValues<C>;
    }

    Type Parameters

    Implemented by

    Index

    Properties

    Схема контекста (только для чтения)

    context: ExtractValues<C> & { _title: Record<keyof C, string> }

    Текущее состояние контекста (только для чтения)

    update: Update<C>

    Обновляет значения в контексте

    onUpdate: OnUpdate<C>
    getSnapshot: () => ExtractValues<C>

    Снимок контекста (только для чтения)