UNPKG

cumqueoptio

Version:

The meta-framework suite designed from scratch for frontend-focused modern web development.

31 lines (26 loc) 763 B
import { interpret } from 'xstate/lib/interpreter'; import { MachineModelDesc } from './types'; import type { MachineMap } from './types/map'; /** * merge service map at model mounting */ export function mergeMachineMap( map: MachineMap, modelDesc: MachineModelDesc, ): void { // FIXME: mounting model must have name, should fix it's type const modelName = modelDesc.name; // warning for replacing service const prevService = map[modelName]; if (prevService) { console.warn( `Mounting a model <${modelName}> with existed service. The service would be overridden.`, ); } // generate service from machine schema const service = interpret(modelDesc.machine as any); service.start(); map[modelName] = { service, }; }