matthewp / robot

🤖 A functional, immutable Finite State Machine library

Home Page:https://thisrobot.life

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

API: Consider renaming `interpret()` to `createService()`

Zearin opened this issue · comments

The interpret() function returns something called a service everywhere else in the docs.

When I was first trying to learn Robot to use in a project of mine, it took me a couple of re-reads for this to sink in. That’s because the other functions return things that match the function name: createMachine() returns a machine, transition() returns a transition, state() returns a state, and so on.

(I don’t normally feel comfortable requesting a change to an API name. However, since Robot is still at version 0.2.x, I suppose this is the appropriate time (before v1.x) to do so.)

Consider renaming interpret() to createService(). This would make the function match what we call the thing it returns.

It would also make the only 2 top-level functions in Robot start with “create…”. That would be a nice cue that both functions are at that level.

Personally I'd rather get rid of services altogether. I just haven't figured out how yet :)

Until you figure out how, can I do this rename in a Pull Request? :) (Including updating the docs!)

commented

@matthewp ping :)

commented

@matthewp QQ: Can you elaborate on your wish to drop services completely?

(i.e., are you talking about something like const fsm = createMachine({…}); fsm.run()?)