import { actionTypes } from './actions' ; import { EventObject , InvokeConfig , InvokeDefinition , InvokeSourceDefinition } from './types' ; export function toInvokeSource ( src ) { if ( typeof src === 'string' ) { const simpleSrc = { type : src } ; simpleSrc . toString = ( ) => src ; return simpleSrc ; } return src ; } export function toInvokeDefinition < TContext , TEvent extends EventObject > ( invokeConfig ) { return { type : actionTypes . invoke , ... invokeConfig , toJSON ( ) { const { onDone , onError , ... invokeDef } = invokeConfig ; return { ... invokeDef , type : actionTypes . invoke , src : toInvokeSource ( invokeConfig . src ) } ; } } ; }