@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
37 lines (36 loc) • 1.76 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const BaseAdapter_1 = require("../../data_adapters/BaseAdapter");
const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType"));
const util_1 = require("../../util");
class CoreGetFeatureDensityStats extends RpcMethodType_1.default {
constructor() {
super(...arguments);
this.name = 'CoreGetFeatureDensityStats';
}
async serializeArguments(args, rpcDriver) {
var _a;
const { rootModel } = this.pluginManager;
const assemblyManager = rootModel.session.assemblyManager;
const renamedArgs = await (0, util_1.renameRegionsIfNeeded)(assemblyManager, {
...args,
filters: (_a = args.filters) === null || _a === void 0 ? void 0 : _a.toJSON().filters,
});
return super.serializeArguments(renamedArgs, rpcDriver);
}
async execute(args, rpcDriver) {
const pm = this.pluginManager;
const deserializedArgs = await this.deserializeArguments(args, rpcDriver);
const { adapterConfig, sessionId, regions } = deserializedArgs;
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
if (!(0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)) {
throw new Error('Adapter does not support retrieving features');
}
return dataAdapter.getMultiRegionFeatureDensityStats(regions, deserializedArgs);
}
}
exports.default = CoreGetFeatureDensityStats;