@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
36 lines (35 loc) • 2.42 kB
TypeScript
import MainThreadRpcDriver from './MainThreadRpcDriver.ts';
import WebWorkerRpcDriver from './WebWorkerRpcDriver.ts';
import type BaseRpcDriver from './BaseRpcDriver.ts';
import type PluginManager from '../PluginManager.ts';
import type { AnyConfigurationModel } from '../configuration/index.ts';
type DriverClass = BaseRpcDriver;
interface BackendConfigurations {
WebWorkerRpcDriver?: Omit<ConstructorParameters<typeof WebWorkerRpcDriver>[0], 'config'>;
MainThreadRpcDriver?: Omit<ConstructorParameters<typeof MainThreadRpcDriver>[0], 'config'>;
[key: string]: unknown;
}
export type RpcDriverFactory = (config: AnyConfigurationModel, backendConfig: unknown, pluginManager: PluginManager) => BaseRpcDriver;
export default class RpcManager {
pluginManager: PluginManager;
mainConfiguration: AnyConfigurationModel;
backendConfigurations: BackendConfigurations;
static configSchema: import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{
defaultDriver: {
type: string;
description: string;
defaultValue: string;
};
drivers: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IMapType<import("@jbrowse/mobx-state-tree").ITypeUnion<import("@jbrowse/mobx-state-tree").ModelCreationType<import("@jbrowse/mobx-state-tree/dist/internal").ExtractCFromProps<Record<string, any>>> | undefined, import("@jbrowse/mobx-state-tree").ModelSnapshotType<Record<string, any>>, ({} & Partial<import("@jbrowse/mobx-state-tree/dist/internal").ExtractCFromProps<Record<string, any>>> & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject) | undefined>>, [undefined]>;
}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
driverObjects: Map<string, DriverClass>;
driverFactories: Map<string, RpcDriverFactory>;
constructor(pluginManager: PluginManager, mainConfiguration: AnyConfigurationModel, backendConfigurations: BackendConfigurations);
registerDriverFactory(name: string, factory: RpcDriverFactory): void;
getDriver(backendName: string): BaseRpcDriver;
getDriverForCall(_sessionId: string, _functionName: string, args: {
rpcDriverName?: string;
}): Promise<BaseRpcDriver>;
call(sessionId: string, functionName: string, args: Record<string, unknown>, opts?: {}): Promise<unknown>;
}
export {};