MetaFor - v0.3.1
    Preparing search index...

    Type Alias ReactionChain<C, S, Core>

    ReactionChain: (
        config?: { title?: string; description?: string },
    ) => {
        filter: (
            conditions: ReactionFilterConditions,
        ) => {
            equal: (
                updateFn: ReactionUpdate<C, S, Core>,
            ) => {
                filter: (args: ReactionFilterArgs) => boolean;
                update: ReactionUpdate<C, S, Core>;
                title: string;
                description?: string;
            };
        };
    }

    Chain API для создания реакции

    Позволяет удобно создавать реакции с декларативными фильтрами.

    Type Parameters

    • C extends ContextSchema

      схема контекста

    • S extends string

      строковые ключи состояний

    • Core = Record<string, any>

      тип core объекта

    Type declaration

      • (
            config?: { title?: string; description?: string },
        ): {
            filter: (
                conditions: ReactionFilterConditions,
            ) => {
                equal: (
                    updateFn: ReactionUpdate<C, S, Core>,
                ) => {
                    filter: (args: ReactionFilterArgs) => boolean;
                    update: ReactionUpdate<C, S, Core>;
                    title: string;
                    description?: string;
                };
            };
        }
      • Parameters

        • Optionalconfig: { title?: string; description?: string }
          • Optionaltitle?: string

            Название реакции

          • Optionaldescription?: string

            Описание реакции

        Returns {
            filter: (
                conditions: ReactionFilterConditions,
            ) => {
                equal: (
                    updateFn: ReactionUpdate<C, S, Core>,
                ) => {
                    filter: (args: ReactionFilterArgs) => boolean;
                    update: ReactionUpdate<C, S, Core>;
                    title: string;
                    description?: string;
                };
            };
        }

    const chain = reaction({
    title: "Обработка сообщений",
    description: "Обрабатывает входящие сообщения"
    })
    .filter({
    tag: "user",
    op: "replace",
    path: "/context"
    })
    .equal(({ update, context, patch }) => {
    update({
    lastMessage: patch.value,
    messageCount: context.messageCount + 1
    })
    })