UNPKG

@jbrowse/plugin-config

Version:

JBrowse 2 config utilities

42 lines (41 loc) 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const configuration_1 = require("@jbrowse/core/configuration"); const BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter"); const FromConfigAdapter_1 = require("../FromConfigAdapter/FromConfigAdapter"); class FromConfigRegionsAdapter extends BaseAdapter_1.BaseAdapter { constructor(config, getSubAdapter, pluginManager) { super(config, getSubAdapter, pluginManager); const f = (0, configuration_1.readConfObject)(config, 'features'); this.features = (0, FromConfigAdapter_1.makeFeatures)(f); } async getRegions() { const regions = []; for (const [refName, features] of this.features) { let currentRegion; for (const feature of features) { if (currentRegion && currentRegion.end >= feature.get('start') && currentRegion.start <= feature.get('end')) { currentRegion.end = feature.get('end'); } else { if (currentRegion) { regions.push(currentRegion); } currentRegion = { refName, start: feature.get('start'), end: feature.get('end'), }; } } if (currentRegion) { regions.push(currentRegion); } } regions.sort((a, b) => a.refName.localeCompare(b.refName)); return regions; } } exports.default = FromConfigRegionsAdapter;