docs icon indicating copy to clipboard operation
docs copied to clipboard

Docs: Docs do not list all possible machine options keys

Open MichalBryxi opened this issue 3 years ago • 4 comments

Description

Looking at the docs of MachineOptions and it mentions only actions.

But from the Configuring services part of the guides

const userMachine = createMachine(
  {
      // ...
  },
  {
  services: {
    getUser: (context, event) => fetchUser(context.user.id)
  }
);

and Serialising guards

const searchMachine = createMachine(
  {
    // ...
  },
  {
    guards: {
      searchValid: (context, event) => {
        return context.canSearch && event.query && event.query.length > 0;
      }
    }
  }
);

it seems to me that the MachineOptions object can also have services and guards keys? So it should be mentioned in the guides.

Expected result

### Machine options

- `actions?` (object) - a lookup object for your string actions.
- `guards?` (object) - a lookup object for your string guards.
- `services?` (object) - a lookup object for your string services.

Actual result

Confusion? :)

Reproduction

N/A

Additional context

No response

MichalBryxi avatar Mar 22 '22 07:03 MichalBryxi

Looking at the docs of MachineOptions and it mentions only actions.

This is a documentation of @xstate/fsm - it's a much simpler package and it only supports "configurable" actions at the moment.

Andarist avatar Mar 22 '22 10:03 Andarist

What would be a good place to look at all the possible keys for options object of createMachine(_, options) then?

MichalBryxi avatar Mar 22 '22 11:03 MichalBryxi

I've tried to find one... and I couldn't (I could have missed it, but still...). The docs are currently introducing each concept separately and I didn't find a good "common" API reference in the docs for this. It's definitely something that we should improve.

The allowed keys there are actions, delays, guards and services.

Andarist avatar Mar 22 '22 12:03 Andarist

@MichalBryxi Our plan for our new, revamped docs is to have a central API reference for this.

mattpocock avatar Apr 06 '22 09:04 mattpocock