MetaFor - v0.3.1
    Preparing search index...

    Function MetaFor

    • MetaFor — фабрика для создания web-компонента-актора конечного автомата

      Parameters

      • tag: string

        уникальный тег web-компонента

      Returns {
          context<C extends ContextSchema>(
              schema: (types: ContextTypes) => C,
          ): {
              states<S extends string>(
                  states: StatesConfig<S, C>,
              ): {
                  core(
                      core?: Record<string, any>,
                  ): {
                      processes(
                          process?: ActionsDeclaration<C, S>,
                      ): {
                          reactions(
                              reaction?: ReactionsChain<C, S>,
                          ): { view(view?: ViewConfig<C, S>): void };
                      };
                  };
              };
          };
      }

      chain API: context() -> states() -> actions()

      • context: function
        • Регистрирует схему контекста для автомата.

          Контекст содержит только простые типы данных. Сложные объекты храните в core.

          Type Parameters

          Parameters

          • schema: (types: ContextTypes) => C

            Функция, принимающая types и возвращающая объект-схему контекста

          Returns {
              states<S extends string>(
                  states: StatesConfig<S, C>,
              ): {
                  core(
                      core?: Record<string, any>,
                  ): {
                      processes(
                          process?: ActionsDeclaration<C, S>,
                      ): {
                          reactions(
                              reaction?: ReactionsChain<C, S>,
                          ): { view(view?: ViewConfig<C, S>): void };
                      };
                  };
              };
          }

          chain API для вызова .states(...)

          • states: function
            • Регистрирует переходы автомата между состояниями.

              Type Parameters

              • S extends string

              Parameters

              • states: StatesConfig<S, C>

                Объект, где ключ — имя состояния, а значение — карта возможных переходов (ключ — следующее состояние, значение — условия или данные перехода). Пример:

                .states({
                guest: { user: { name: "Пользователь" } },
                user: { guest: {} },
                })

              Returns {
                  core(
                      core?: Record<string, any>,
                  ): {
                      processes(
                          process?: ActionsDeclaration<C, S>,
                      ): {
                          reactions(
                              reaction?: ReactionsChain<C, S>,
                          ): { view(view?: ViewConfig<C, S>): void };
                      };
                  };
              }

              chain API для вызова .actions(...)

          .context((types) => ({
          userId: types.number.required(0),
          userName: types.string.required("Anonymous"),
          selectedIds: types.array.required([]),
          isLoading: types.boolean.required(false),
          theme: types.enum.required(["light", "dark"]),
          }))