UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

39 lines (38 loc) 1.79 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType")); const util_1 = require("../../util"); class CoreGetFeatureDetails extends RpcMethodType_1.default { constructor() { super(...arguments); this.name = 'CoreGetFeatureDetails'; } async serializeArguments(args, rpcDriver) { const { rootModel } = this.pluginManager; const assemblyManager = rootModel.session.assemblyManager; const renamedArgs = await (0, util_1.renameRegionsIfNeeded)(assemblyManager, args); const superArgs = (await super.serializeArguments(renamedArgs, rpcDriver)); if (rpcDriver === 'MainThreadRpcDriver') { return superArgs; } const { rendererType } = args; const RendererType = this.pluginManager.getRendererType(rendererType); return RendererType.serializeArgsInClient(superArgs); } async execute(args, rpcDriver) { var _a, _b; let deserializedArgs = args; if (rpcDriver !== 'MainThreadRpcDriver') { deserializedArgs = await this.deserializeArguments(args, rpcDriver); } const { rendererType, featureId } = deserializedArgs; const RendererType = this.pluginManager.getRendererType(rendererType); return { feature: (_b = (_a = RendererType.getLayoutSession(args)) === null || _a === void 0 ? void 0 : _a.cachedLayout.layout.getDataByID(featureId)) === null || _b === void 0 ? void 0 : _b.toJSON(), }; } } exports.default = CoreGetFeatureDetails;