@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
18 lines (17 loc) • 1.09 kB
TypeScript
import PluggableElementBase from './PluggableElementBase';
import type PluginManager from '../PluginManager';
import type { UriLocation } from '../util/types';
export type RpcMethodConstructor = new (pm: PluginManager) => RpcMethodType;
export default abstract class RpcMethodType extends PluggableElementBase {
pluginManager: PluginManager;
constructor(pluginManager: PluginManager);
serializeArguments(args: Record<string, unknown>, rpcDriverClassName: string): Promise<Record<string, unknown>>;
serializeNewAuthArguments(loc: UriLocation, rpcDriverClassName: string): Promise<UriLocation>;
deserializeArguments<T>(args: T & {
blobMap?: Record<string, File>;
}, _rpcDriverClassName: string): Promise<T>;
abstract execute(serializedArgs: unknown, rpcDriverClassName: string): Promise<unknown>;
serializeReturn(originalReturn: unknown, _args: unknown, _rpcDriverClassName: string): Promise<unknown>;
deserializeReturn(serializedReturn: unknown, _args: unknown, _rpcDriverClassName: string): Promise<unknown>;
private augmentLocationObjects;
}