UNPKG

@minima-global/mds

Version:

Official MDS Typescript Library for Minima. Used for creating minidapps that interact with the Minima Blockchain.

65 lines 2.37 kB
import type { MDSResponse } from '../../types.js'; import type { AddPeersParams, ConnectParams, DisconnectParams, ListPeersParams, NetworkListParams, PeersParams, RPCEnableParams, RPCParams } from './params.js'; import type { Message, NetworkReturnType, PeersReturnType, Ping, RPC } from './response.js'; /** * Connect function types */ export type ConnectFunc = (args: { params: ConnectParams; }, callback?: (data: MDSResponse<Message>) => void) => Promise<MDSResponse<Message>>; /** * Disconnect function types */ export type DisconnectFunc = (args: { params: DisconnectParams; }, callback?: (data: MDSResponse<Message>) => void) => Promise<MDSResponse<Message>>; /** * Network list function types */ type NetworkCallback<T> = (data: NetworkReturnType<T>) => void; export type NetworkFunc = <T extends NetworkListParams['action']>(args: { params: { action: T; }; }, callback?: NetworkCallback<T>) => Promise<NetworkReturnType<T>>; /** * Peers function types */ export type ActionParamMapPeers = { readonly list: ListPeersParams; readonly addpeers: AddPeersParams; }; type PeersCallback<T> = (data: PeersReturnType<T>) => void; export type PeersParamType<A extends PeersParams | undefined> = A extends { action: keyof ActionParamMapPeers; } ? ActionParamMapPeers[A['action']] : A; export type PeersFuncParams<A extends PeersParams | undefined> = [ { params: PeersParamType<A>; }, PeersCallback<A>? ]; export type PeersFunc = <T extends PeersParams | undefined>(...args: T extends undefined ? [PeersCallback<T>?] : PeersFuncParams<T>) => Promise<PeersReturnType<T>>; /** * Ping function types */ export type PingFunc = (callback?: (data: MDSResponse<Ping>) => void) => Promise<MDSResponse<Ping>>; /** * RPC function types */ type RPCCallback = (data: MDSResponse<RPC>) => void; export type ActionParamMapRPC = { readonly enable: RPCEnableParams; }; export type RPCParamType<A extends RPCParams | undefined> = A extends { enable: 'true'; } ? RPCEnableParams : A; export type RPCFuncParams<A extends RPCParams | undefined> = [ { params: RPCParamType<A>; }, RPCCallback? ]; export type RPCFunc = <T extends RPCParams | undefined>(...args: T extends undefined ? [RPCCallback?] : RPCFuncParams<T>) => Promise<MDSResponse<RPC>>; export {}; //# sourceMappingURL=functions.d.ts.map