diff --git a/lib/utils/keyserver-call.js b/lib/utils/keyserver-call.js --- a/lib/utils/keyserver-call.js +++ b/lib/utils/keyserver-call.js @@ -19,25 +19,25 @@ import type { ConnectionStatus } from '../types/socket-types.js'; import type { CurrentUserInfo } from '../types/user-types.js'; -export type CallKeyserverEndpoint> = ( +export type CallKeyserverEndpoint = ( endpoint: Endpoint, input: { +[string]: mixed }, args: Args, options?: ?CallServerEndpointOptions, ) => Promise; -export type ActionFunc, Return> = ( +export type ActionFunc = ( callServerEndpoint: CallKeyserverEndpoint, -) => (...Args) => Promise; +) => Args => Promise; -export type KeyserverCallConfig> = +export type KeyserverCallConfig = | { +keyserverSelection: 'fanout' } | { +keyserverSelection: 'specific', - +keyserverIDExtractor: (...Args) => string, + +keyserverIDExtractor: Args => string, }; -export type KeyserverCall, Return> = { +export type KeyserverCall = { +actionFunc: ActionFunc, +config: KeyserverCallConfig, }; @@ -87,7 +87,7 @@ +keyserverInfos: { +[keyserverID: string]: KeyserverInfo }, }; -export type GetCallKeyserverEndpointParams> = { +export type GetCallKeyserverEndpointParams = { ...BindKeyserverCallParams, +keyserverCallConfig: KeyserverCallConfig, }; @@ -102,9 +102,9 @@ keyserverInfos: { +[keyserverID: string]: KeyserverInfo }, ) => { return _memoize( - , Return>( + ( keyserverCall: KeyserverCall, - ): ((...Args) => Promise) => { + ): (Args => Promise) => { const callKeyserverEndpoint = ( endpoint: Endpoint, data: Object, @@ -142,9 +142,7 @@ return Promise.all(promises); } - const keyserverID = keyserverCall.config.keyserverIDExtractor( - ...args, - ); + const keyserverID = keyserverCall.config.keyserverIDExtractor(args); return bindCallKeyserverEndpoint(keyserverID); }; @@ -154,10 +152,10 @@ }, ); -function useKeyserverCall, Return>( +function useKeyserverCall( keyserverCall: KeyserverCall, paramOverride?: ?$Shape, -): (...Args) => Promise { +): Args => Promise { const dispatch = useDispatch(); const keyserverInfos = useSelector( state => state.keyserverStore.keyserverInfos,