@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
39 lines (38 loc) • 1.79 kB
JavaScript
;
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;