UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

25 lines (24 loc) 1.2 kB
import RpcMethodType from "../../pluggableElementTypes/RpcMethodType.js"; import { renameRegionsIfNeeded } from "../../util/index.js"; export default class CoreGetFeatureDetails extends RpcMethodType { name = 'CoreGetFeatureDetails'; async serializeArguments(args, rpcDriver) { const { rootModel } = this.pluginManager; const assemblyManager = rootModel.session.assemblyManager; const renamedArgs = await renameRegionsIfNeeded(assemblyManager, args); const superArgs = (await super.serializeArguments(renamedArgs, rpcDriver)); const { rendererType } = args; const RendererType = this.pluginManager.getRendererType(rendererType); return RendererType.serializeArgsInClient(superArgs); } async execute(args, rpcDriver) { const deserializedArgs = await this.deserializeArguments(args, rpcDriver); const { rendererType, featureId } = deserializedArgs; const RendererType = this.pluginManager.getRendererType(rendererType); return { feature: RendererType.getLayoutSession(args) ?.cachedLayout.layout.getDataByID(featureId) ?.toJSON(), }; } }