admin
|
a44463b3ee
|
refactor(user): split user-machine into helpers and actors
Mirror the existing chat-module structure (chat-machine.helpers.ts +
chat-machine.actors.ts) for consistency across state-machine modules.
Split:
- user-machine.helpers.ts: pure data layer (no XState dep)
- userStorage singleton
- InitData interface
- toView DTO → UserView mapper
- readInitData (parallel getUser + getAvatarUrl)
- user-machine.actors.ts: async actor implementations (fromPromise)
- userRepo / authRepo injection
- userInitActor / userFetchActor / userLogoutActor
- user-machine.ts: only setup().createMachine() — keeps inline assign
actions referencing context/event where they belong, imports actors
(not helpers, per the layered convention).
No behaviour change — only file boundaries moved. Public API (exports of
UserState / UserEvent / initialState / userMachine / UserMachine) stays
identical so external imports are untouched.
|
2026-06-16 18:12:11 +08:00 |
|